このような列が生成された 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)
しかし、うまくいきませんでした(最後の列の値しか取得できませんでした)