jqGrid - 如何向subgrid添加行?或者如何从父行获取主键?

时间:2010-08-24 18:41:06

标签: jqgrid

我正在使用ASP.MVC和jqgrid 3.7.2。数据加载到网格和子网格中。更新表的主要部分非常有效。我可以更新或删除子网格中的行,因为子网格中的一个字段是父行的主键。但是当将行发回服务器时尝试添加行时,我无法获取父行的Id。所有其他子网格值都按预期发布。我想过尝试获取父级的“选定”行,但是未选择父行,所以我不确定如何在主表中获取父行Id(主键)因此将是外键在详细信息表中。当子网格有任何数据时,我也可以得到父网址,因为我所有的子网格行都将其作为隐藏字段。我注意到在帖子中,Id字段是回发的一部分,但值为null。有任何想法吗?我正在使用导航栏中的编辑。

3 个答案:

答案 0 :(得分:2)

我只想做一个非常懒惰的做法: 我用过:

            editurl:"datasource/notas_edit.php?pid="+row_id,

然后我用PHP中的$ _GET得到它的值...懒惰但是有效!

答案 1 :(得分:1)

我在扩展行时最终保存了主键。然后我在navgrid的添加选项中使用了该值

subGridRowExpanded: function (subgrid_id, row_id) {
    var currentRow = $('#UtilitiesGrid').jqGrid('getRowData', row_id);
    var utilityPrimaryKey = currentRow.UtilityId`;
    ...

$("#" + subGridTableId).jqGrid('navGrid', "#" + pagerId, { edit: true, add: true, del: true, search: false, view: false, refresh: true },
     ...
     { // Add Options
         reloadAfterSubmit: true,
         afterSubmit: CheckForError,
         closeAfterAdd: true,
         url: "/Options/AddUtilityPwsId/" + utilityPrimaryKey
     },

答案 2 :(得分:1)

subGridRowExpanded: function (subgrid_id, row_id) {
    var currentRow = $('#UtilitiesGrid').jqGrid('getRowData', row_id);
    var utilityPrimaryKey = currentRow.UtilityId;
...

colNames: ['parentid','subid',...], //insert parentid column, hidden
colModel: [{name:"parentid", index:"parentid", hidden:true, editable:true, 
        editoptions: {
            disabled:true, //dissabled in case colModel->hidden=false
            value:utilityPrimaryKey , //Value for parentid in the add form
        },
            {name:"subid",index:"subid",key:true,hidden:true}
...

$("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{
                    add:true, 
                    del:true, 
                    refresh:true,
                    refreshstate:"current",
                    search:false,
                },
                {},//edit options
                                //add options
                {recreateForm:true //since clearAfterAdd is trueby default, recreate the form so we re-establish value for parent id
                });