2013-03-25 2 views
0

KendoUI ASP Wrapper를 사용하고 있는데, "ActivityCodeID"의 기본 ForeignKey 편집기를 AutoComplete로 변경하는 데 도움이 필요합니다. 어떻게 바꿀 수 있습니까? 내 EF 모델의 DataAnnotation을 수정하고 EditorTemplate를 선언하지만 여전히 기본 "GridForeignKey"editortemplate을 사용하고에 KendoUI ForeignKey Column의 사용자 정의 편집기 템플릿

@(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입니다.

[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/ 저도 같은 문제가되었다 –

+0

은, 귀하의 질문에 내 사용자 지정 editortemplate는'공유> EditorTemplates' 폴더로 이동하십시오 저를 밀고보십시오. 지금 일하고있어. –

답변

3

편집기 템플릿의 이름을 지정할 수있는 특별한 열 방법이 있습니다.

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

그래, 나는 알고 있지만 columns.ForeignKey()에 대해 "EditorTemplateName"을 설정할 수 없다. 나는 columns.boud()에서만 사용할 수 있다고 생각합니다. –