2013-03-25 122 views
0

我使用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"]) 

請幫忙。謝謝! )* @

+1

https://kendoeditortemplate.codeplex.com/ – 2013-08-03 13:26:16

+0

我有同樣的問題,你的問題我放倒過動我的自定義editortemplate是進入'共享> EditorTemplates'文件夾。現在工作。 – 2015-09-04 18:54:28

回答

3

有一種特殊的列方法,可讓您指定編輯器模板的名稱。嘗試

columns.bound(x=>x.some).EditorTemplateName("foo"); 
+1

雅,我知道這一點,但我不能爲columns.ForeignKey()設置「EditorTemplateName」。我認爲它只適用於columns.boud() – 2013-03-26 02:43:10