2

サブグリッドを持つjqGridがあります。サブグリッドの行をクリックすると、メイン グリッドの同じ行が選択されます。理由は本当にわかりません。

私はJquery 1.4.3 jquery-ui 1.8.13 jqGrid 4.1.1を持っています

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

$("#customer").jqGrid({
  url:'/datasnap/rest/TMdsrl/CustomerTable/' + SessionData.SessionName,
  datatype: "json",
  mtype: 'GET',
  colNames:['', '@lang.company','@lang.address', '@lang.zipcode', '@lang.city',   '@lang.state', '@lang.vatid_code', '@lang.fiscal_code'],
  colModel:[
    {name:'CUSTOMER_ID',index:'CUSTOMER_ID', width:0, hidden:true},
    {name:'COMPANY',index:'COMPANY', width:150},
    {name:'ADDRESS',index:'ADDRESS', width:150},
    {name:'ZIPCODE',index:'ZIPCODE', width:50},
    {name:'CITY',index:'CITY', width:100},
    {name:'STATE',index:'STATE', width:30},
    {name:'VATID_CODE',index:'VATID_CODE', width:90},
    {name:'FISCAL_CODE',index:'FISCAL_CODE', width:90}
  ],
  rowNum:5,
  rowList:[5,10,20],
  pager: '#customer_pager',
  sortname: 'COMPANY',
  sortorder: "asc",
  multiselect: false,
  height: 250,
  caption: "@lang.customer_title",
  subGrid: true,
  // define the icons in subgrid
  subGridOptions: {
      "plusicon"  : "ui-icon-triangle-1-e",
      "minusicon" : "ui-icon-triangle-1-s",
      "openicon"  : "ui-icon-arrowreturn-1-e"
  },
  subGridRowExpanded: function(subgrid_id, row_number) {
      var subgrid_table_id, subpager_id;
      var sub_rowdata = $("#customer").jqGrid('getRowData', row_number);
      subgrid_table_id = subgrid_id+"_t";
      subpager_id = "p_"+subgrid_table_id;
      $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table>  <div id='"+subpager_id+"' class='scroll'></div>");
      $("#"+subgrid_table_id).jqGrid({
          url:'/datasnap/rest/TMdsrl/ContactForCustomerTable/' +   SessionData.SessionName + '/' + sub_rowdata.CUSTOMER_ID,
          datatype: 'json',
          mtype: 'GET',
          colNames: ['','@lang.fullname','@lang.email','@lang.phone','@lang.cellphone',   '@lang.newsletter'],
          colModel: [
              {name:'CONTACT_ID',index:'CONTACT_ID',width:0, hidden: true},
              {name:'FULLNAME',index:'LASTNAME', width:150},
              {name:'EMAIL',index:'EMAIL', width:150},
              {name:'PHONE',index:'PHONE', width:150},
              {name:'CELLPHONE',index:'CELLPHONE',width:150},
              {name:'NEWSLETTER',index:'NEWSLETTER',width:20},
          ],
          rowNum:5,
          pager: subpager_id,
          sortname: 'FULLNAME',
          sortorder: 'asc',
          height: '100%'
      });
      $("#"+subgrid_table_id).jqGrid('navGrid',"#"+subpager_id,  {edit:false,add:false,del:false,search:false})
  }

ご協力ありがとうございました

解決しよ う 問題は、メイン グリッドの行とサブグリッドの行が同じ ID を持つことでした! JSONでサブグリッドに異なるIDを指定することを解決しました。

4

1 に答える 1

0

(OPによって簡潔に回答され、コミュニティwikiの回答としてここに転記されました。回答のない質問を参照してください。ただし、コメントで問題が解決されました(またはチャットで拡張されました)

OP は次のように書いています。

問題は、メイン グリッドの行とサブグリッドの行が同じ ID を持つことでした。JSONでサブグリッドに異なるIDを指定することを解決しました。

于 2015-01-27T14:06:37.003 に答える