我有一个两层的分层网格,我正在从服务器端绑定转移到使用 ajax。两层数据的 ajax 读取工作正常,但是我在使用 ClientTemplate 根据条件逻辑呈现我的列时遇到了困难。
下面是服务器端绑定版本。我知道我必须使用 ClientTemplate 和表达式 #=# 才能获得相同的效果,但我遇到了两个问题:
- 如何为每一行增加变量“i”,以便我可以使用 CheckBoxFor 和类似 html 辅助方法?
- 如何将 @ 转换为使用 ClientTemplate 表达式。请注意,条件逻辑使用视图模型的属性以及绑定元素 (MyViewModel) 的属性,条件逻辑使用模型中的混合属性
将其转换为表达式将是最有帮助的。
var i = -1;
@(Html.Kendo().Grid<MyViewModel>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.Selected).Title("")
.Template(
@<text>
@{i++;}
@if (Model.Permissions.HasInsertAccess && item.Status == Status.Created)
{
<input type="hidden" name="MyViewModels.Index" value="@i" />
@Html.CheckBoxFor(m => m.MyViewModels[i].Selected)
}
</text>);
columns.Bound(c => c.Id)
.Template(@<text>@Html.HiddenFor(m => m.MyViewModels[i].Id)@item.Id</text>)