在剑道网格单元格编辑中的组合框

时间:2014-08-26 04:56:06

标签: jquery asp.net-mvc kendo-ui kendo-grid kendo-asp.net-mvc

我很感激任何帮助。

我有一个带有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);
}

专栏CLAUSEEditorTemplate

@model int?

@(Html.Kendo().ComboBoxFor(model=>model).BindTo((SelectList)(new SelectList(context.CurrencyClauses, "CODE", "TITLE", Model))))

问题是当我从下拉列表中选择某个项目index()函数接收null时,我该如何绑定所选索引?

1 个答案:

答案 0 :(得分:3)

Hey Gvuzal Rakhmaveva,

我想与您分享一个解决方案..

您必须为组合框名称属性指定与您需要绑定的属性相同的名称。您在视图模型中的字段上设置属性[UIHint(&#34; TemplateName&#34;)]。在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) 

我希望这对你有所帮助。

如果工作那么就不要忘记投票。