我有一个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)
但它不起作用(我只获得了最后一列的值)
答案 0 :(得分:1)
我认为你不能为所有列提供相同的名称,请查看我在评论中给出的链接。现在,如果你给一个列名称''A'+'@ template.ID''并假设它被渲染为A1,A2,那么在你的控制器中你应该接受这样的东西。
public ActionResult SaveRow(string A1, string A2)
控制器中的列名和参数应该相同。