我有这个代码,我有一点问题,当我编辑时,我在rowid
中有codSelected
值发送给我的处理程序,它由onSelectRow
事件存储。如果我编辑一行,效果很好,但是如果编辑一个并且我想要添加一个新的,我需要这个值(_codSelected
)null,但它具有与上一个编辑行相同的值。我知道我可以在寻呼机中使用addfunc
,但是如果我使用它,我不能使用jqGrid默认使用的弹出窗口。
感谢。
$("#list").jqGrid({
url: '/modulos/mantenimiento/Proveedores.ashx',
datatype: 'xml',
mtype: 'GET',
colNames: ['Codigo' //Some more colnames and colmodels]
colModel: [
{ name: 'Codigo', index: 'PRg_Codigo', edittype: 'select',
editable: true, editrules: { edithidden: false }, editoptions:
{ size: 30, dataUrl: '/modulos/mantenimiento/grupoProveedores.ashx?
oper=selectAllGroups' }, sortable: true }
],
onSelectRow: function (rowid) {
_codSelected = rowid;
},
ajaxSelectOptions: {
data: {
codSelected: function () {
return _codSelected;
}
}
}
});
jQuery("#list").jqGrid('navGrid', '#pager', {
alerttext: "Seleccione un Servicio.",
add: true, addtitle: "Crear nuevo Servicio",
del: true, deltitle: "Eliminar Servicio",
edit: true, edittitle: "Modificar Servicio",
search: false, searchtitle: "Búsqueda",
refresh: true,
cloneToTop: true
},
{ width: 360, resize: false, closeAfterEdit: true, recreateForm: true,
viewPagerButtons: true, afterComplete: muestraResultadoOperacion },
{ width: 360, resize: false, closeAfterAdd: true, recreateForm: true,
viewPagerButtons: true, afterComplete: muestraResultadoOperacion },
{},
{ closeAfterSearch: true, closeOnEscape: true });
答案 0 :(得分:1)
我不确定我是否理解您的要求。
首先,_codSelected
似乎与jqGrid的内部selrow
选项的值相同。您可以使用$("#list").jqGrid("getGridParam", "selrow")
获取最后一个选定行的rowid
。如果您想将_codSelected
变量初始化为当前所选行的值,仅在编辑对话框的情况下,并在添加对话框时将其设置为null
,您可以执行此操作这里面是beforeInitData回调。 “添加”对话框的beforeInitData
回调可以将_codSelected
设置为null
,“编辑”对话框的相同回调可以使用_codSelected = $(this).jqGrid("getGridParam", "selrow");
。它应该可以解决你的问题。
更新:要清除我的建议,我决定发布以下代码:
var _codSelected = null;
// ...
// here should be the definition of jqGrid where you removed
// the current code of onSelectRow which changes _codSelected
// ...
jQuery("#list").jqGrid('navGrid', '#pager', {
alerttext: "Seleccione un Servicio.",
add: true, addtitle: "Crear nuevo Servicio",
del: true, deltitle: "Eliminar Servicio",
edit: true, edittitle: "Modificar Servicio",
search: false, searchtitle: "Búsqueda",
refresh: true,
cloneToTop: true
},
{ width: 360, resize: false, closeAfterEdit: true, recreateForm: true,
beforeInitData: function () {
// set _codSelected in case of Edit operation
_codSelected = $(this).jqGrid("getGridParam", "selrow");
},
viewPagerButtons: true, afterComplete: muestraResultadoOperacion },
{ width: 360, resize: false, closeAfterAdd: true, recreateForm: true,
beforeInitData: function () {
// clear _codSelected in case of Add operation
_codSelected = null;
},
viewPagerButtons: true, afterComplete: muestraResultadoOperacion },
{},
{ closeAfterSearch: true, closeOnEscape: true });