0

extjs3 を使用しています。私の問題は、 ajax を使用してサーバー側からストアをロードすることです。次のように

var store_dept = new Ext.data.JsonStore({              
                totalProperty:'totalcount',
                root:'rows_dept',   
                autoLoad:true,
                url: '<%=getResultURL.toString()%>',  
                fields:[

                        { name:'name'},
                        { name:'id'},
                        { name:'address'}
                      ] 

             });

var sm_dept = new Ext.grid.CheckboxSelectionModel(

                        {
                            singleSelect: false,
                            checkOnly: false,
                            listeners: {

                                selectionchange: function(sm_dept) {


                                }
                            }
                        }

                );

今、私は応答を取得しているので、レンダラー列で次のようにフォーマットしています

function renderBufferResult_dept(value, p, record){

     return String.format('<div style="white-space:normal !important;"><b>{1}</b><br/>{3}<br/>{2}<br/></div>',value,record.data.name,record.data.address,record.data.id);
 }

グリッドコードは次のとおりです。

 var  grid_dept= new Ext.grid.GridPanel({
                id:'resgriddept',               
                width:210,
                height:300,
                title:'Additional Notification',
                store: store_dept,
                trackMouseOver:false,
                disableSelection:true,
                loadMask: true,
                sm:sm_dept,
                // grid columns
                columns:[
                        sm_dept, 
                         {                
                    header: "Details",
                    dataIndex: 'id',
                    width:210,                
                    sortable: true,
                    renderer:renderBufferResult_dept
                }
                ] ,

               buttons: [
                         {
                             text:'Export To Excel',
                             handler: function()
                            {


                                if(property_list!=''){
                                    /* var prop_list='';
                                    for(var i=0 ;i<sm.selections.getCount();i++){
                                        prop_list =prop_list+ sm.selections.get(i).data.id+',';

                                    } */
                                    window.open('<%=getxlFileURL%>'+'&id_list='+property_list);

                                }else{
                                    alert('Select propert to Export');
                                }
                            }


                         },{

                             text:'Generate Letter',
                             handler: function()
                            {



                                       var dept_id_list = '0,';
                                      if(sm_dept.selections.getCount()>0){
                                          alert('cont select');
                                        for(var j=0 ;j<sm_dept.selections.getCount();j++){
                                            alert("id "+sm_dept.selections.get(j).data.id);
                                            dept_id_list = dept_id_list+sm_dept.selections.get(j).data.id+',';
                                            alert('id with templist '+dept_id_list);
                                        }
                                     }  
                                        window.open('<%=getreportsURL%>'+'&id_list='+property_list+'&dept_id_list='+dept_id_list);


                            } 

                         }],
              buttonAlign:'center'

             });//End Of Grid
             // render it    
             grid_dept.render('res-grid-dept');
             store_dept.load();

問題は、生成文字ボタンを押すと発生します。チェックされた行 (1,2,3) の ID は、アラートで 0,1,2,3 のようになる必要があるときに、0,1,1,2 のようになります。

4

1 に答える 1