0

我有一个带有这样生成列的 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)

但它没有用(我只得到了最后一列的值)

4

1 回答 1

1

我认为您不能为所有列使用相同的名称,请检查我在评论中给您的链接。现在,如果您将一个列名称指定为 ''A'+'@template.ID'' 并假设它像 A1、A2 一样呈现,那么在您的控制器中,您应该只接受这样的内容。

public ActionResult SaveRow(string A1, string A2)

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

于 2012-08-02T14:23:00.827 回答