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

本文关键字:下拉列表 文本 一个 显示 ForeignKey | 更新日期: 2023-09-27 18:15:03

我的问题是:

我有两个项目与类似的代码显示一个下拉列表内的kendogrid。在第一个项目中所有的工作都很好,在第二个项目中我得到了一个文本框显示而不是下拉框。我在teleerik找过了,但没有什么能解决我的问题。我认为在我的项目中缺少一些东西,使这个工作很好。或者有东西挡住了!但是找不到……希望你能帮助我!

这是我的网格:

@(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)
                             ))

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

您可能没有在项目中添加编辑器模板。

../Views/Shared/目录下创建一个名为EditorTemplates的新文件夹,如果没有的话。然后在该文件夹中创建名为GridForeignKey.cshtml的新文件,并将以下代码复制到其中,保存并再次尝试。

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