Jquery plugins 如何从子网格rowId获取父id?

Jquery plugins 如何从子网格rowId获取父id?,jquery-plugins,jqgrid,subgrid,Jquery Plugins,Jqgrid,Subgrid,我使用的是JqGrid和子网格。我必须从子网格rowId中获取父id var subgrid_table_id, pager_id; subgrid_table_id = subgrid_id + "_t"; pager_id = "p_" + subgrid_table_id; //alert(subgrid_table_id); $("#" + subgrid_id).html("<table id='"

我使用的是JqGrid和子网格。我必须从子网格rowId中获取父id

        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});
请帮我解决这个问题

        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});
我正在下面粘贴我的代码

        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});
//这是网格

$("#DayEvents").jqGrid({
    url: 'Event.asmx/GetDayForEvents',
    datatype: 'json',
    mtype: 'POST',
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
    serializeGridData: PrepareGridPostData,
    jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
    colNames: ['day', 'DayID'],
    colModel: [{ name: 'Day', index: 'Day', editable: false, width: 550, align: 'center', sortable: false },
    { name: 'DayID', index: 'DayID', editable: false, width: 550, align: 'center', sortable: false, hidden: true }
  ],
    rowNum: 10,
    rowList: [5, 10, 15, 20],
    // pager: "#pager2",
    viewrecords: true,
    gridview: true,
    width: '100%',
    autowidth: false,
    shrinkToFit: false,
    height: '331px',
    // pgbuttons: true,
    hoverrows: false,
    //caption: 'Days',
    subGrid: true,
    subGridUrl: 'Event.asmx/GetSubGridDay',
    subGridOptions: {
        "plusicon": "ui-icon-triangle-1-e",
        "minusicon": "ui-icon-triangle-1-s",
        "openicon": "ui-icon-arrowreturn-1-e",
        //expand all rows on load
        "expandOnLoad": false
    },
        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});
//这是子网格 subGridRowExpanded:functionsubgrid_id,row_id{

        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});

在回调函数subGridRowExpanded中,您可以使用该变量,该变量已初始化为的网格DOM的DOM。因此,您可以通过this.id获取父网格的id

        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});

检查

发布一些代码的文档!你需要在这个问题上有更多的细节才能回答。@JamWaffles我已经粘贴了我的代码。请检查并提供一个解决方案这太危险了。我们先展开一行,然后展开另一行,然后选择上一行的子行进行更新或删除。pureRowId将是inco更正。
        var subgrid_table_id, pager_id;
        subgrid_table_id = subgrid_id + "_t";
        pager_id = "p_" + subgrid_table_id;
        //alert(subgrid_table_id);
        $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><a href=# id='AddSession' OnClick='addRow(\"" + subgrid_table_id + "\");'>add session</a><div id='" + pager_id + "' class='scroll'></div>");
        //debugger;
        jQuery("#" + subgrid_table_id).jqGrid({

            url: 'Event.asmx/GetSubGridDay',
            datatype: 'json',
            mtype: 'POST',
            cellEdit: true,
            cellsubmit: 'clientarray',
            onCellSelect: GridCellClick,               


            ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
            serializeGridData: PrepareGridPostData,
            jsonReader: { repeatitems: false, root: "d.rows", page: "d.page", total: "d.total", records: "d.records" },
            colNames: ['session', 'start time', 'end time'],
            colModel: [

                 { name: 'SessionName', index: 'SessionName', width: 90, formatter: 'text', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                  { name: 'StartTime', index: 'StartTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} },
                 { name: 'EndTime', index: 'EndTime', width: 90, formatter: 'number', align: 'center', edittype: 'text', editable: true, editoptions: { size: 10, maxlength: 15, dataEvents: [{ type: 'change', fn: GetRemainingEffort }, { type: 'focus', fn: clearCellValues }, { type: 'blur', fn: resetCellValues}]} }

            ],

            rowNum: 10,
             height: 'auto',
            autowidth: true

        });

    }




});