我正在尝试在kendo网格中添加一个DropDown,但它会显示一个TextBox
@(Html.Kendo().Grid((IEnumerable<Doc.Web.Models.Vendor.DocumentsDetails>)Model.documents_lst)
.Name("grid").Scrollable()
.Columns(columns =>
{
columns.Bound(o => o.DocumentRevisionID).Visible(false);
columns.Bound(o => o.Documentnumber).Title("Document #").Width(150);
columns.Bound(o => o.Revision).Title("Revision").Width(80);
columns.Bound(o => o.RevisionDate).Format("{0:dd/MM/yyyy}").Title("Rev Date").Width(85);
columns.Bound(o => o.RevisionStatus).Title("Revision</br> Status").Width(100);
columns.Bound(s => s.DocNumberPurpose).ClientTemplate((@Html.Kendo().DropDownList()
.BindTo((System.Collections.IEnumerable)ViewData["Purpose"])
.Name("DocNumberPurpose")
.DataTextField("Text")
.DataValueField("Value")
.ToClientTemplate()).ToHtmlString());
})
.DataSource(dataSource => dataSource
.Ajax()
.Model(model => model.Id(o => o.DocumentRevisionID))
.Model(model=>model.Field(o=>o.DocNumberPurpose).Editable(false))
)
.Events(ev=>ev.DataBound("onGridDataBound"))
.Pageable()
.Sortable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Events(events => events.Error("error_handler"))
.Model(model => model.Id(p => p.DocumentRevisionID))
.Read(read => read.Action("EditingInline_Read", "DesignCoverSheet").Data("additionalInfo"))
)
)
<script>
function onGridDataBound(e) {
$('#grid script').appendTo(document.body);
}
</script>
3 回答
你真的非常接近:
然后在一个名为“neatPropertyDropDownList.cshtml”的单独视图中
检查this article以获取您正在尝试执行的操作的详细示例,特别是在步骤3中
基本上你可以用以下方式做到这一点:
上例中的模板名称是“CompaniesList”,它将是EditorTemplates文件夹中的cshtml视图文件 .
根据上面的文章:
创建“CompaniesList”编辑器模板文件后,在其中定义Kendo下拉列表,如下所示:
请注意,下拉名称必须与网格中的列属性完全相同,即“CompanyId”
您可以查看Kendo Grid ForeignKey Column概念 . 它可以用作
细节可以在这里找到http://demos.telerik.com/kendo-ui/web/grid/foreignkeycolumn.html