我将不胜感激。

我有一个具有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)




希望对您有所帮助。

如果工作的话,别忘了投票。

10-06 15:04
查看更多