我有一个简单的Kendo UI网格的MVC视图:
@(Html.Kendo().Grid(Model.Positions)
.Name("Test")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Command(command => { command.Edit(); });
})
.Editable(ed=>ed.Mode(GridEditMode.PopUp).TemplateName("Position").Window(w => w.Width(600)).Window(w => w.Title("Byrå")))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Model(model => model.Id(p => p.Id))
.Update(update => update.Action("Update", "Office"))
.Read(read => read.Action("Get", "Office")
)
)
)
在Shared / EditorTemplate下,我在Shared / EditorTemplates下添加了Postion.cshtml。如果我使用例如:
,编辑打开它应该是一切都很好@Html.TextBoxFor(model => model.Name)
但是,我不能使用LabelFor,因为它会显示属性的名称而不是值。它似乎也是网格将弹出窗口与网格一起实例化。单击“编辑”时,TextBoxFor中的值会更新,但如果我使用@ Model.Name则不会。它总是空的。
我还尝试并隐藏了一些字段,具体取决于其中一个字段的值,但由于我不能使用@Model它不会工作。
任何人都知道怎么解决这个问题?
答案 0 :(得分:0)
剑道对我的回答就是这样的。我还没有在我的案例中工作,但它可能对你有所帮助。如果您想出一个与此问题不同的解决方案,您可以分享吗?
在自定义编辑器中。
文本/ JavaScript的
function sendName() {
var grid = $('.k-grid').data().kendoGrid;
var tr = grid.tbody.find('.k-grid-edit-row');
var model = grid.dataItem(tr);
var result = {
name: model.Name
};
return result;
}
他们正在检查html并首先分配网格,然后选择网格的选定行,然后将行的字段映射到网格的列。