Kendo UI 带外键的网格下拉列表
Kendo UI Grid dropdown with Foreign key
我应该在 Telerik 论坛上问这个问题,但浏览了那里的许多答案后,出于对 Telerik 的尊重,我觉得这将是徒劳的,我可以在这里期待更好更快的答案。所以我开始了:
我正在使用 Kendo UI 网格控件并在可编辑的下拉列表中显示值 cell.But,它取消了内置过滤功能,因为它不是由盒子。现在我坚持使用外键实现这一目标的唯一方法; http://demos.telerik.com/aspnet-mvc/grid/foreignkeycolumn
示例中缺少一些位,例如 PopulateCategories() 函数以及要放入 MVC EditorTemplate 中的代码。
有没有人试过并成功显示过滤器?我可以提供我的代码,但我认为这不是问题的一部分,因为代码没有任何问题。我要问的是如何使用 Telerik 提供的解决方案使用下拉列表模板实现过滤。
希望它可能有所帮助 someone.The 上面 link 中提供的示例中缺少以下位(我已经使用我的代码来传达缺少的位):
第一个
而不是:
columns.ForeignKey(p => p.CategoryID, (System.Collections.IEnumerable)ViewData["categories"], "CategoryID", "CategoryName")
.Title("Category").Width(150)
也使用 EditorTemplateName 属性:
columns.ForeignKey(p => p.Region.RegionId, (System.Collections.IEnumerable)ViewData["Regions"], "RegionId", "RegionName").Title("Region").EditorTemplateName("RegionsTemplate");
第二
继续使用复杂模型,否则添加新记录功能将不起作用:
所以不用
.Model(model =>
{
model.Id(p => p.ProductID);
model.Field(p => p.ProductID).Editable(false);
model.Field(p => p.CategoryID).DefaultValue(1);
})
同时使用外键模型和复杂模型:
.Model(model => {
model.Id(p => p.FunctionLevelRegionMappingId);
model.Field(p => p.FunctionLevelRegionMappingId).Editable(false);
model.Field(p => p.Region.RegionId).DefaultValue(1);
model.Field(p => p.Region).DefaultValue(
ViewData["DefaultRegion"] as GlobalLossAnalysisTool.Web.Areas.Administration.Models.RegionDto);
})
第三
示例中缺少 ProductViewModel。这个可以参考http://demos.telerik.com/aspnet-mvc/grid/editing-custom。此模型没有变化。
第四个
模板更改:
示例中缺少模板,但可以从 link http://demos.telerik.com/aspnet-mvc/grid/editing-custom 中推断出来。从 :
更改模板
@model Kendo.Mvc.Examples.Models.CategoryViewModel
@(Html.Kendo().DropDownListFor(m => m)
.DataValueField("CategoryID")
.DataTextField("CategoryName")
.BindTo((System.Collections.IEnumerable)ViewData["categories"])
)
收件人:
@using Kendo.Mvc.UI
@(Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]))
我应该在 Telerik 论坛上问这个问题,但浏览了那里的许多答案后,出于对 Telerik 的尊重,我觉得这将是徒劳的,我可以在这里期待更好更快的答案。所以我开始了:
我正在使用 Kendo UI 网格控件并在可编辑的下拉列表中显示值 cell.But,它取消了内置过滤功能,因为它不是由盒子。现在我坚持使用外键实现这一目标的唯一方法; http://demos.telerik.com/aspnet-mvc/grid/foreignkeycolumn
示例中缺少一些位,例如 PopulateCategories() 函数以及要放入 MVC EditorTemplate 中的代码。
有没有人试过并成功显示过滤器?我可以提供我的代码,但我认为这不是问题的一部分,因为代码没有任何问题。我要问的是如何使用 Telerik 提供的解决方案使用下拉列表模板实现过滤。
希望它可能有所帮助 someone.The 上面 link 中提供的示例中缺少以下位(我已经使用我的代码来传达缺少的位):
第一个
而不是:
columns.ForeignKey(p => p.CategoryID, (System.Collections.IEnumerable)ViewData["categories"], "CategoryID", "CategoryName")
.Title("Category").Width(150)
也使用 EditorTemplateName 属性:
columns.ForeignKey(p => p.Region.RegionId, (System.Collections.IEnumerable)ViewData["Regions"], "RegionId", "RegionName").Title("Region").EditorTemplateName("RegionsTemplate");
第二
继续使用复杂模型,否则添加新记录功能将不起作用:
所以不用
.Model(model =>
{
model.Id(p => p.ProductID);
model.Field(p => p.ProductID).Editable(false);
model.Field(p => p.CategoryID).DefaultValue(1);
})
同时使用外键模型和复杂模型:
.Model(model => {
model.Id(p => p.FunctionLevelRegionMappingId);
model.Field(p => p.FunctionLevelRegionMappingId).Editable(false);
model.Field(p => p.Region.RegionId).DefaultValue(1);
model.Field(p => p.Region).DefaultValue(
ViewData["DefaultRegion"] as GlobalLossAnalysisTool.Web.Areas.Administration.Models.RegionDto);
})
第三
示例中缺少 ProductViewModel。这个可以参考http://demos.telerik.com/aspnet-mvc/grid/editing-custom。此模型没有变化。
第四个
模板更改:
示例中缺少模板,但可以从 link http://demos.telerik.com/aspnet-mvc/grid/editing-custom 中推断出来。从 :
更改模板@model Kendo.Mvc.Examples.Models.CategoryViewModel
@(Html.Kendo().DropDownListFor(m => m)
.DataValueField("CategoryID")
.DataTextField("CategoryName")
.BindTo((System.Collections.IEnumerable)ViewData["categories"])
)
收件人:
@using Kendo.Mvc.UI
@(Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"]))