ForeignKey显示文本框而不是下拉列表

时间:2016-10-26 09:49:27

标签: c# asp.net telerik kendo-grid

这是我的问题:

我有两个类似代码的项目在kendogrid中显示一个下拉列表。在第一个项目中一切正常,在第二个项目中,我得到了一个文本框dipslaying而不是下拉列表。我在telerik周围搜索过,但没有什么能解决我的问题。我觉得我的项目中缺少一些可以使这项工作正常的东西。或者有什么阻止它!但是找不到..希望你能帮助我!

这是我的网格:

@(Html.Kendo().Grid<DisplayUniteMultiple>()
                              .Name("GridDisplayUniteMultiple")
                              .ToolBar(t => t.Create().Text("Ajouter un couple Valeur/ Unite"))
                              .Columns(columns =>
                              {
                                 columns.Bound(c => c.id).Hidden(true);
                                 columns.Bound(c => c.Valeur);
                                 columns.ForeignKey(c => c.Unite, unitesDeConversion, "Value", "Text").Title("Unité").Width(200);
                              })
                             .Editable(editable => editable.Mode(GridEditMode.InCell).Enabled(true))
                             .Events(e => e.Edit("onGridChange"))
                             .DataSource(datasource => datasource
                                .Ajax()
                                .Update(builder => builder.Url(""))
                                .PageSize(50)
                                .Batch(false)
                                .Model(model =>
                                {
                                    model.Id(uniteMultiple => uniteMultiple.id);
                                    model.Field(uniteMultiple => uniteMultiple.Valeur);
                                    model.Field(uniteMultiple => uniteMultiple.Unite);
                                })
                                .ServerOperation(true)
                             ))

1 个答案:

答案 0 :(得分:2)

您可能缺少在项目中添加编辑器模板。

EditorTemplates目录中创建名为../Views/Shared/的新文件夹(如果尚未创建)。然后在该文件夹中创建名为GridForeignKey.cshtml的新文件,并将代码复制到其中,保存并重试。

@model object

@(
  Html.Kendo().DropDownListFor(m => m)        
     .BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
)