我将不胜感激。
我有一个具有incell编辑模式的Kendo网格:
@(Html.Kendo().Grid(Model.ContractCurrencyClauses)
.Name("ContractCurrencyClauses")
.ToolBar(toolbar => { toolbar.Create(); })
.Columns(columns =>
{
columns.Bound(p => p.CLAUSE).ClientTemplate("#= CLAUSE #" +
"<input type='hidden' name='ContractCurrencyClauses[#= index(data)#].CLAUSE' value='#= CLAUSE #' />"
).EditorTemplateName("CurrencyClause");
columns.Command(command => { command.Destroy(); });
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource =>
dataSource.Ajax()
.Model(model =>
{
...
})
.ServerOperation(false)
)
)
索引功能:
function index(dataItem) {
var data = $("#ContractCurrencyClauses").data("kendoGrid").dataSource.data();
return data.indexOf(dataItem);
}
CLAUSE
列具有EditorTemplate
:@model int?
@(Html.Kendo().ComboBoxFor(model=>model).BindTo((SelectList)(new SelectList(context.CurrencyClauses, "CODE", "TITLE", Model))))
问题是,当我从
index()
函数的下拉列表中选择某些项目时会收到null
,而是如何绑定选定的索引? 最佳答案
嘿Gvuzal Rakhmaveva,
我想与您分享一种解决方案。
您必须为组合框名称属性赋予与绑定所需要的属性相同的名称。在视图模型的字段上设置属性[UIHint(“ TemplateName”)]。在shared / EditorTemplates文件夹中添加了模板。现在它可以绑定并可以正常工作了。
-------------------网格------------------------------ --
@(Html.Kendo().Grid<MVC.ViewModels.ResultsViewModel>(Model)
.Name("Grid")
.Columns(columns => {
columns.Bound(o => o.Waarneming).Width(550).Title("Waarneming"); columns.Bound(p => p.Result).Width(110).Title("Resultaat");
})
- - - - - - - - - -组合框 - - - - - - - - - - -
@(Html.Kendo().ComboBox()
.Name("Result")
.DataValueField("Text")
.DataTextField("Text")
.HighlightFirst(true)
.BindTo((IEnumerable<SelectListItem>) ViewBag.NormeringList)
)
希望对您有所帮助。
如果工作的话,别忘了投票。