Javascript 如何在子网格中绑定和解除绑定事件

Javascript 如何在子网格中绑定和解除绑定事件,javascript,jquery,asp.net-mvc,jqgrid,Javascript,Jquery,Asp.net Mvc,Jqgrid,subGridRowExpanded时,我有一个jqGrid和SubGrid,SubGrid为null时,我希望取消绑定事件展开行和图标展开行数据。当我将一行从其他网格拖到此子网格时,我希望子网格的绑定事件再次展开添加图标将行展开到网格。我该怎么做 I解除绑定事件子网格行在加载网格完成时展开: function CreateOperationGrid(styleCode, styleSize, styleColorSerial, revNo) { Operation_Grid.jqGri

subGridRowExpanded时,我有一个jqGrid和SubGrid,SubGrid为null时,我希望取消绑定事件展开行和图标展开行数据。当我将一行从其他网格拖到此子网格时,我希望子网格的绑定事件再次展开添加图标将行展开到网格。我该怎么做

I解除绑定事件子网格行在加载网格完成时展开:

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("");
                }
            });
        }
    });
}
函数CreateOperationGrid(styleCode、styleSize、styleColorSerial、revNo){
操作_Grid.jqGrid({
数据类型:“json”,
身高:250,
宽度:空,
shrinkToFit:错,
rowNum:100000,
行数:对,
gridview:false,
//==========================================
url:“/OpsLink/GetOpDetail”,
标题:“行动”,
postData:{
styleCode:styleCode,size:styleSize,serial:styleColorSerial,revNo:revNo
},
//mtype:“POST”,
colModel:[
{
名称:“基准时间”,
索引:“基准时间”,
宽度:95,
标签:arrColname.BENCHMARKTIME,
对齐:“居中”,
搜索:假,
排序:false
},
{name:“StyleCode”,index:“StyleCode”,hidden:true},
{name:“StyleSize”,index:“StyleSize”,hidden:true},
{name:“StyleColorSerial”,索引:“StyleColorSerial”,隐藏:true},
{name:“RevNo”,index:“RevNo”,hidden:true},
{name:“OpRevNo”,索引:“OpRevNo”,隐藏:true},
{名称:“NewPrevNo”,索引:“NewPrevNo”,隐藏:true}
],
分组:对,
分组视图:{
groupField:[“OpGroupName”],
groupColumnShow:[错误],
群体崩溃:是的,
普鲁西贡:“王牌图标fa plus”,
小图标:“王牌图标fa减号”
},
子网格:对,
subGridRowExpanded:函数(subgridId,rowId){
var row=操作网格.getRowData(rowId);
var sCode=row.StyleCode;
var subgridTableId=subgridId+“\u t”;
jQuery(“#”+subgridId).html(”;
jQuery(“#”+subgridTableId).jqGrid({
url:“/OpsLink/GetProtBomPattern?styleCode=“+sCode,
数据类型:“json”,
页码:1,
colModel:[
{标签:arrOpChilName.OpRevNo,名称:“OpRevNo”,索引:“OpRevNo”,宽度:80},
{标签:arrOpChilName.OpSerial,名称:“OpSerial”,索引:“OpSerial”,宽度:80},
{标签:arrOpChilName.OpType,名称:“OpType”,索引:“OpType”,宽度:80},
{标签:arrOpChilName.ConSumUnit,名称:“ConSumUnit”,索引:“ConSumUnit”,宽度:80},
{标签:arrOpChilName.unitconsumition,名称:“unitconsumition”,索引:“unitconsumition”,宽度:80},
{标签:arrOpChilName.PieceQty,名称:“PieceQty”,索引:“PieceQty”,宽度:80}
],
viewrecords:是的,
高度:“100%”,
行数:对,
多选:对,
寻呼机:“#jqGridPager”+“#”+子网格ID
});
},
子网格选项:{
普鲁西贡:“王牌图标fa plus”,
小图标:“王牌图标fa减号”,
openicon:“ui-icon-carat-1-sw”,
expandOnLoad:false,
selectOnExpand:false,
重载扩展命令:false
},
gridComplete:函数(){
操作_Grid.find('tr[role=“row”]”)addClass(“ui可拖放”);
$('td[aria descripeby=“Operation\u Grid\u NewPrevNo”]”)。每个(函数(){
var x=$(this.html();
如果(x==“”){
$(this).parent().find('td[aria descripeby=“Operation\u Grid\u subgrid”]”)。解除绑定(“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>');
Operation_Grid.find('tr[id=“”+rowDropTo+”).find('td[aria descripebby=“Operation_Grid_subgrid”]”).bind(“click”).html(“”);
但当我点击图标时,它不会运行funtion subGridRowExpanded。请帮助,谢谢如果您使用,请查看我们的


编辑:对于您的案例,另一个可能的解决方案是只显示和隐藏图标(点击绑定的href标记),而不是绑定取消绑定事件。

经过两天的研究,我已经像这样重新绑定了

  • 在将其移除到阵列中之前:
  • currChild[id]=$(this.parent().find('td[aria descripbedby=“Operation\u Grid\u subgrid”]”)。clone(true,true); $(this).parent().find('td[aria descripeby=“Operation\u Grid\u subgrid”]”)。解除绑定(“click”).html(“”

  • 又是垃圾桶

    操作_Grid.find('tr[id=“”+rowDropTo+“]”)。find('td[aria descripeby=“操作_Grid_subgrid”]”)。替换为(currChild[rowDropTo])