保存动态生成的jqgrid列

Saving dynamically generated jqgrid columns

本文关键字:jqgrid 动态 保存      更新时间:2024-07-02

我有一个jqgrid,它生成了这样的列(在ASP.NET MVC 3项目中)。他们使用内联编辑:

@foreach (var template in Model.TemplateList.Where(m => m.Type == 2))
{
<text>
  { name: 'A'+'@template.ID', index: 'A'+'@template.ID', width: 40, align: 'left',
       editable: true, 
       editoptions: { dataEvents: [{ type: 'keyup', fn: function (e) {
       var $tr = $(e.target).closest("tr.jqgrow"), rowId = $tr.attr("id");
       var nextRow = parseInt(rowId, 10) + 1;
       var total = parseInt(e.target.value, 10);
       if (isNaN(total)) {
           total = 0;
       }
       ChangeValue('A'+'@template.ID', total, $tr);
   }}]}},
 </text>
 }

这些列已经生成并且运行良好,直到我尝试保存它们为止。我试图给控制器赋值,但它似乎不起作用。我已经尝试给所有列起相同的名称,以将它们放在一个数组中:

... name: 'templateColumns', index: 'A'+'@template.ID', width: 40, align: 'left', ...

在控制器中:

public ActionResult SaveRow(string[] templateColumns)

但它不起作用(我只得到了最后一列的值)

我认为不可能所有列都有相同的名称,请检查我在注释中给你的链接。现在,如果你给一个列名为"A"+"@template.ID",并假设它被渲染为A1、A2,那么在你的控制器中,你应该只接受这样的东西。

public ActionResult SaveRow(string A1, string A2)

控制器中的列名和参数应该相同。