2017-08-08 119 views
1

當subGridRowExpanded時,我有一個jqGrid和SubGrid,當SubGrid爲null時,我想要取消綁定事件展開行和圖標展開行數據。當我從其他網格拖到這個SubGrid的一行我希望綁定事件subGridRowExpanded再次添加圖標擴大行到網格。我怎樣才能做到這一點?如何在子網格中綁定和解除綁定事件

我解除綁定事件subGridRowExpanded就當負載gridComplete:

function CreateOperationGrid(styleCode, styleSize, styleColorSerial, revNo) { 
    Operation_Grid.jqGrid({ 
     datatype: "json", 
     height: 250, 
     width: null, 
     shrinkToFit: false, 
     rowNum: 100000, 
     rownumbers: true, 
     gridview: false, 
     //========================================== 
     url: "/OpsLink/GetOpDetail", 
     caption: "Operation", 
     postData: { 
      styleCode: styleCode, size: styleSize, serial: styleColorSerial, revNo: revNo 
     }, 
     //mtype: 'POST', 
     colModel: [ 
      { 
       name: "BenchmarkTime", 
       index: "BenchmarkTime", 
       width: 95, 
       label: arrColname.BENCHMARKTIME, 
       align: "center", 
       search: false, 
       sort: false 
      }, 
      { name: "StyleCode", index: "StyleCode", hidden: true }, 
      { name: "StyleSize", index: "StyleSize", hidden: true }, 
      { name: "StyleColorSerial", index: "StyleColorSerial", hidden: true }, 
      { name: "RevNo", index: "RevNo", hidden: true }, 
      { name: "OpRevNo", index: "OpRevNo", hidden: true }, 
      { name: "NewPrevNo", index: "NewPrevNo", hidden: true } 
     ], 
     grouping: true, 
     groupingView: { 
      groupField: ["OpGroupName"], 
      groupColumnShow: [false], 
      groupCollapse: true, 
      plusicon: "ace-icon fa fa-plus", 
      minusicon: "ace-icon fa fa-minus" 
     }, 
     subGrid: true, 
     subGridRowExpanded: function (subgridId, rowId) { 
      var row = Operation_Grid.getRowData(rowId); 
      var sCode = row.StyleCode; 
      var subgridTableId = subgridId + "_t"; 
      jQuery("#" + subgridId).html("<table id='" + subgridTableId + "' class='scroll'></table>"); 
      jQuery("#" + subgridTableId).jqGrid({ 
       url: "/OpsLink/GetProtBomPattern?styleCode=" + sCode, 
       datatype: "json", 
       page: 1, 
       colModel: [ 
        { label: arrOpChilName.OpRevNo, name: "OpRevNo", index: "OpRevNo", width: 80 }, 
        { label: arrOpChilName.OpSerial, name: "OpSerial", index: "OpSerial", width: 80 }, 
        { label: arrOpChilName.OpType, name: "OpType", index: "OpType", width: 80 }, 
        { label: arrOpChilName.ConSumUnit, name: "ConSumUnit", index: "ConSumUnit", width: 80 }, 
        { label: arrOpChilName.UnitConSumTion, name: "UnitConSumTion", index: "UnitConSumTion", width: 80 }, 
        { label: arrOpChilName.PieceQty, name: "PieceQty", index: "PieceQty", width: 80 } 

       ], 
       viewrecords: true, 
       height: "100%", 
       rownumbers: true, 
       multiselect: true, 
       pager: "#jqGridPager" + "_" + subgridId 
      }); 
     }, 
     subGridOptions: { 
      plusicon: "ace-icon fa fa-plus", 
      minusicon: "ace-icon fa fa-minus", 
      openicon: "ui-icon-carat-1-sw", 
      expandOnLoad: false, 
      selectOnExpand: false, 
      reloadOnExpand: false 
     }, 
     gridComplete: function() { 
      Operation_Grid.find('tr[role="row"]').addClass("ui-droppable"); 
      $('td[aria-describedby="Operation_Grid_NewPrevNo"]').each(function() { 
       var x = $(this).html(); 
       if (x === "&nbsp;") { 
        $(this).parent().find('td[aria-describedby="Operation_Grid_subgrid"]').unbind("click").html(""); 
       } 
      }); 
     } 
    }); 
} 

,我想再次註冊事件:

Operation_Grid.find('tr[id="' + rowDropTo + '"]').find('td[aria-describedby="Operation_Grid_subgrid"]').bind("click").html('<a style="cursor:pointer;"><span class="ui-icon ui-icon-plus"></span></a>'); 

但它不能運行時,我的圖標上單擊funtion subGridRowExpanded。請幫忙,謝謝

回答

1

經過兩天的研究,我被重新綁定了這樣的嫌疑人。

  1. 之前除去膿它到一個數組:

currChild [ID] = $(本).parent()找到( 'TD [詠歎調-describedby = 「Operation_Grid_subgrid」]')。克隆(true,true); ()「)。(())。(this).parent()。find('td [aria-describedby =」Operation_Grid_subgrid「]')。unbind(」click「)。

  1. bin又一次。 Operation_Grid.find('tr [id =''+ rowDropTo +'「]')。find('td [aria-describedby =」Operation_Grid_subgrid「]')。replaceWith(currChild [rowDropTo]);

0

在您使用Guriddo jqGrid情況,請關注我們demo example here

編輯:對於你的情況的另一種可能的解決方案是隻是爲了而非顯示和隱藏圖標(其中單擊綁定href標記)綁定解除綁定事件。