jqgrid中在表单对话框中获取记录ID的奇怪行为

时间:2012-03-29 19:42:41

标签: jquery jqgrid jqgrid-php

在我的jqgrid中我有一个代表id的表中的字段,我将其设置如下

{name:'e_info_id',index:'e_info_id', width:60, sorttype:"int",key: true}

对于json阅读器,我将其设置为

 jsonReader : { repeatitems: false ,id: "e_info_id",root:"rows"}

现在,当我单击“添加/编辑”图标时,会打开一个“编辑”对话框,因为我没有将e_info_id设置为editable:true,即id字段不会显示在表单对话框中,但是当我单击时在提交时,我无法在以下功能中访问该ID

 onclickSubmit: function (options, postdata) {

          postdata.e_info_id // is undefined 

 }

但是一旦我将e_info_id定义为editable = true,postdata.e_info_id现在就有一个值。现在我觉得这很奇怪,我不知道如何摆脱这个

{name:'e_info_id',index:'e_info_id', width:60, sorttype:"int",key: true,editable:true}

此外,为了防止用户意外更新e_info_id,我试图将其隐藏如下并保持editable:true只是为了获取$.jgrid.edit中e_info_id的值。

   beforeShowForm: function(form) { $('#tr_e_info_id', form).hide(); }

但是这个问题,当我双击桌子的行之前,事件表格不会起火,因此会出现e_info_id字段。

ondblClickRow: function(rowid) {
        $(this).jqGrid('editGridRow',rowid);
    }

现在我没有解决方法,所以基本上我的问题不是在添加/编辑对话框中显示e_info_id字段,而是在onclickSubmit中获取e_info_id的值

1 个答案:

答案 0 :(得分:1)

为什么同时使用key: true jsonReader : { id: "e_info_id",...}?我认为这是你的主要问题。我建议您删除id: "e_info_id"并仅使用key: true

此外,我不理解'e_info_id'列的含义。如果您使用行id id}中的正确<tr>属性填充jqGrid,则ID将以'id'的名称发送到服务器(如果删除)来自id: "e_info_id"的{​​{1}}。您想要显示用户的列吗?您是否希望用户在“编辑”表单中看到信息?所有选项都是可能的,但不依赖