我现在的问题是在编辑该行时尝试发送行的ID(editable: false
)。
例如,我的网格包含用户ID(editable: false
),用户名(editable: true
),名字(editable: true
),姓氏(editable: true
)。编辑行时,网格仅发送参数username,firstname和lastname。在服务器端,我需要用户ID知道我应该将这些新值应用于哪个用户。
editUrl看起来像:
editurl : CONTEXT_PATH+'/ajax/admin/savePart.do?category=1',
由于
这是完整的代码:
$.jgrid.useJSON = true;
//http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3Acommon_rules
$(document).ready(function() {
//alert(CONTEXT_PATH);
var lastsel;
jQuery("#rowed3").jqGrid(
{
url : CONTEXT_PATH+'/ajax/getPartesByCategory.do?catid=<s:property value="categoryId" />',
//url : '/autoWEB/text.html',
datatype: "json",
ajaxGridOptions: { contentType: "application/json" },
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false
},
headertitles: true,
colNames : [ 'ID', 'Pieza', 'Disponible'],
colModel : [ {
name : 'piezaId',
index : 'piezaId',
align : "right",
width : 50,
editable : false,
required : true
}, {
name : 'descripcion',
index : 'descripcion',
width : 390,
editable : true,
required : true
}, {
name : 'disponible',
index : 'disponible',
width : 80,
editable : true,
edittype : 'select',
editoptions:{value:"0:No;1:Si"},
required : true
} ],
rowNum : 20,
rowList : [ 20, 40, 60, 80 ],
pager : '#prowed3',
sortname : 'piezaId',
postData: {piezaId : lastsel},
mtype:"POST",
viewrecords : true,
sortorder : "desc",
onSelectRow : function(id) {
if (id && id !== lastsel) {
jQuery('#rowed3').jqGrid('restoreRow', lastsel);
jQuery('#rowed3').jqGrid('editRow', id, true);
lastsel = id;
}
},
editurl : CONTEXT_PATH+'/ajax/admin/savePieza.do?categoria=<s:property value="categoryId" />',
caption : "Piezas"
});
jQuery("#rowed3").jqGrid('navGrid', "#prowed3", {
edit : false,
add : false,
del : false
});
})
答案 0 :(得分:3)
在onSelectRow回调中,您可以将editUrl修改为您想要的任何内容,包括传入您需要的ID。
$("#rowed3").jqGrid('setGridParam', {editurl:'whatever/url/you/need/with/the/id'});
jqGrid会将所有其他必要的参数添加到该编辑器中。
答案 1 :(得分:2)
您可以使用
hidden: true, editable: true, editrules: { edithidden: false }, hidedlg: true
在piezaId
(ID)列的定义中。参数hidedlg
目前不是真正需要的,但如果您决定使用其他jqGrid功能,则可能很有用。
答案 2 :(得分:0)
传递GET字符串中的值对我有用。
editurl: '/ajax/update?line=1',