JQGrid:将JQGrid列值作为参数传递给cellurl中指定的控制器方法

时间:2015-01-08 08:07:47

标签: asp.net-mvc-4 jqgrid

我正在寻找内联编辑JQGrid。

我的JQGrid包含如下列:

    colModel: [
               { name: 'Model_ID', index: 'model_id', width: 100, editable: false, hidden:  
                false },
               { name: 'Cust_Nm', index: 'cust_nm', width: 100, editable: false},
               { name: 'Model_Nm', index: 'model_nm', width: 140, editable: false, },
               { name: 'Client_Nm1', index: 'client_nm1', width: 120, editable: true},
               { name: 'Client_Nm2', index: 'client_nm2', width: 120, editable: true},
               { name: 'Client_Nm3', index: 'client_nm3', width: 120, editable: true},
               { name: 'Date', index: 'regi_date', width: 130, editable:false, search: false }
              ],
            cellEdit: true,
            cellurl: '@Url.Action("UpdateJQGrid", "Config")',
            cellsubmit: "remote"

我想将'Model_ID'的值传递给“UpdateJQGrid”Controller方法。当我编辑一个单元格并将焦点移动到jggrid内的其他单元格时,会调用UpdateJQGrid。我创建了一个View Model并将ViewModel传递给Controller Method。但我只通过ViewModel对象获取编辑的值而不是所选行的其他值。如果我只能在Controller方法中获得Model_ID的值,那么我的要求将得到解决。 非常感谢任何帮助或提示。

1 个答案:

答案 0 :(得分:1)

了解jqGrid 的实现需要id属性分配给网格的每一行(对于每个<tr>元素都非常重要。 <table>主要数据)。文档使用rowid作为id属性的值。如果您使用jqGrid的编辑功能,则严格建议您根据将从数据库获取的 native 值分配id属性的值(存在于后端)侧)。 rowid将在jqGrid的大多数回调中使用,并将在编辑期间发布到服务器。 Here您可以在单元格编辑过程中读取将要发送到服务器的信息。

如果来自Model_ID(或model_id)列的值唯一且值来自数据库,那么我建议您将该值用作{{ 1}}。要通知jqGrid使用该值,您可以指定rowid id(或jsonReader)的xmlReader属性的相应值。 id属性的值取决于从服务器返回的数据的确切格式,用于填充网格。另一种方法是在key: trueModel_ID)列中指定model_id属性。在更改之后,您将看到jqGrid将在单元格编辑期间将Model_IDmodel_id)列的值发送到服务器。该值将作为id=rowid发送(作为id参数)。您可以按使用prmNames: {id: "Model_ID"}更改参数名称,例如,将id=rowid更改为Model_ID=rowid

还有一句话。如果不是真的需要,我建议你不要使用index属性。如果您错过了该属性,则将使用name属性的值。 nameindex属性的不同值的使用是许多错误的根源,并且无法使用客户端排序,分页和过滤/搜索。