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