KendoUI ForeignKey自定义编辑器模板
问题描述:
我使用KendoUI ASP Wrapper,我需要帮助将“ActivityCodeID”的默认ForeignKey编辑器更改为AutoComplete。我如何改变它?KendoUI ForeignKey自定义编辑器模板
@(Html.Kendo().Grid<TimeEntry>()
.Name("grid-timeentry-project")
.DataSource(datasource => datasource.Ajax()
.Model(model =>
{
model.Id(record => record.TimeEntryID);
model.Field(f => f.TimeSheetID).DefaultValue(0);
model.Field(f => f.TimeEntryTypeID).DefaultValue(ViewBag.ProjectTimeEntryTypeId);
model.Field(f => f.ActivityCodeID);
model.Field(f => f.Description);
model.Field(f => f.Duration);
model.Field(f => f.DateAdded);
})
.Read(read => read.Action("GetProjectTimeEntries", "TimeEntry"))
)
.Columns(columns =>
{
columns.Bound(r => r.TimeEntryID).Hidden(true);
columns.Bound(r => r.TimeSheetID).Hidden(true);
columns.Bound(r => r.TimeEntryTypeID).Hidden(true);
columns.ForeignKey(r => r.ActivityCodeID, (System.Collections.IEnumerable)ViewData["AllActivityCodes"], "ActivityCodeID", "ActivityCode1").Title("ActivityCode");
columns.Bound(r => r.Description);
columns.Bound(r => r.Duration).Title("Duration (s)");
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(170);
})
)
我想修改我的EF模型的DataAnnotation并宣布EditorTemplate但它仍然使用默认的“GridForeignKey” editortemplate。
这是我的EF。
[MetadataType(typeof(TimeEntryMetaData))]
public partial class TimeEntry
{
}
public class TimeEntryMetaData
{
[UIHint("ActivityCodeIDEditor")]
public int ActivityCodeID { get; set; }
}
这是我的“ActivityCodeIDEditor”编辑器模板。我无法获得“asdf”,因此认为不考虑编辑器模板。
@model object
<span>asdf</span>
@*@(
Html.Kendo().DropDownListFor(m => m)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
请帮忙。谢谢! )* @
答
有一种特殊的列方法,可让您指定编辑器模板的名称。尝试
columns.bound(x=>x.some).EditorTemplateName("foo");
+1
雅,我知道这一点,但我不能为columns.ForeignKey()设置“EditorTemplateName”。我认为它只适用于columns.boud() – 2013-03-26 02:43:10
https://kendoeditortemplate.codeplex.com/ – 2013-08-03 13:26:16
我有同样的问题,你的问题我放倒过动我的自定义editortemplate是进入'共享> EditorTemplates'文件夹。现在工作。 – 2015-09-04 18:54:28