1
我正尝试使用kendo ui mvc包装网格绑定到对象列表。如何将kendo ui mvc网格绑定到对象列表
此外,我将复选框添加到每行的第一列,网格是包装在窗体中。然后,我想在提交时利用默认模型绑定(顺序或非顺序)列表。
我有写是被索引的HiddenFor和CheckBoxFor辅助方法的问题。
如果我写的表格布局自己会是这样的:
<table>
<tbody>
@for (var i = 0; i < Model.Count; i++)
{
<tr>
<td>
<input type="hidden" name="Index" autocomplete="off" value="@i" />
@Html.HiddenFor(m => Model[i].Id)
@Html.CheckBoxFor(m => Model[i].Selected)
</td>
...
这将产生以下HTML输出。
<input type="hidden" name="Index" autocomplete="off" value="0" />
<input id="[0].Id" name="[0].Id" type="hidden" value="1234" />
<input id="[0].Selected" name="[0].Selected" type="checkbox" value="true" />
<input name="[0].Selected" type="hidden" value="false" />
这怎么可能用剑道UI MVC电网包装服务器端绑定?
我尝试使用在网格外定义的计数器,并在.RowAction和绑定列内增加它,但混合结果没有给我想要的结果。
var counter = 0;
@(Html.Kendo().Grid(Model)
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.Id)
.Template(
@<text>
<input type="hidden" name="Index" autocomplete="off" value="@counter" />
@Html.HiddenFor(m => Model[counter].Id)
@Html.CheckBoxFor(m => Model[counter].Selected)
</text>)
...
我的问题是增加计数器。也许有更好的解决方案?
我做的另一个尝试是自己编写table html,然后应用javascript网格绑定$(“grid”).kendoGrid(...)。然而,然后我放弃了在我的tr/td元素上动态定义css类的能力。
作品以及使用递增计数器@ {计数器++;}到底柱。我也可以从-1开始递增,并为第一列的第一个元素添加@ {counter ++;},从而摆脱空结束列 – David
是的,好点。随时用这个更好的方法更新我的答案。 –