2017-08-08 25 views
1

SubGridRowExpandedのときはjqGridとSubGridがあり、SubGridがnullの場合は、イベントを展開して行を展開し、アイコンの行データを展開する必要があります。私は他のグリッドからこのSubGridに行をドラッグしたときに私はsubGridRowExpandedのバインドイベントをもう一度アイコンをグリッドに展開するアイコンを追加します。これどうやってするの?subGridでイベントをバインドおよびアンバインドする方法

私は負荷gridCompleteにsubGridRowExpandedイベントバインド解除:

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>'); 

しかし、それは私がアイコンをクリックするとsubGridRowExpanded目的球を実行しません。あなたのケースのための別の可能な解決策は、単にアイコンを表示し、非表示にすることである(バインドでクリックがHREFタグ)ではなく:助けてください、あなたはGuriddo jqGridを使用する場合には感謝

答えて

1

2日間の研究の後、私はこのようなリバインド・スーセーです。

  1. 前配列に膿を除去する:

currChild [ID] = $(この).parent()( 'TD [ARIA-describedbyの= "Operation_Grid_subgrid"]')を見つけます。クローン(真、真); ( "クリック")。html( "");$(this).parent()。find( 'td [aria-describedby = "Operation_Grid_subgrid"]')

  1. binもう一度。

    Operation_Grid.find( 'tr [id = "' + rowDropTo + '"]')find( 'td [aria-describedby = "Operation_Grid_subgrid"]')。replaceWith(currChild [rowDropTo]);

0

は、私たちのdemo example here

編集をご覧ください。バインド解除イベントをバインドします。

関連する問題