2014-11-08 4 views
0

telerik mvc 검도 표에 드롭 다운 목록을 바인딩하는 데 문제가 있습니다.telerik 검도 mvc 표에서 드롭 다운 목록을 바인드 할 수 없습니다.

모눈에 바인딩 된 레코드 컬렉션이 있고 각 레코드에는 Foregin Key 속성이 있습니다. 현재 드롭 다운이 있어야하는 곳에 텍스트 상자를 렌더링하고 있습니다.

Detail slot rendering as text input field

나는 또한 Telerik 문서와 throrugh 그들이에만 해당 필드에 ClientTemplate를 사용하여 표시하고 해당 템플릿에 대한 코드를 표시하지 않습니다 그러나 작업 드롭 다운이 데모 코드를 검색했다.

IEnumerable<DetailSlotDTO> slots = Mapper.ToDTO(detailSlotRepository.GetAll()); 
ViewData["Slots"] = slots; 

을 다음과 같이 DetailSlotDTO 클래스는 다음과 같습니다 : 다음과 같이 내 컨트롤러 액션에서

나는 내 컬렉션과 함께을 ViewData를 채울

public class DetailSlotDTO 
{ 
    public int Id { get; set; } 
    public string Description { get; set; } 
} 

내가 다음 설정에 그리드를 시도하고 내 다음과 같이 표시 :

@(Html.Kendo().Grid<SFT.Web.DTOs.SyndicatedRecordDTO>() 
.Name("slotGrid") 
.Columns(c => 
{ 
    c.Bound(f => f.DetailSlot).ClientTemplate(Html.Kendo().DropDownList() 
     .BindTo(ViewData["Slots"] as IEnumerable<SFT.Web.DTOs.DetailSlotDTO>) 
     .Name("SlotDesc_#=Id#") 
     .DataTextField("Description") 
     .DataValueField("Id") 
     .ToClientTemplate().ToHtmlString() 
     ); 
    c.Bound(f => f.Client); 
    c.Bound(f => f.Product); 
    c.Bound(f => f.Start); 
    c.Bound(f => f.End); 
    c.Bound(f => f.PurchaseOrder); 
    c.Bound(f => f.Value); 
    c.Bound(f => f.KPIPenalty); 
    c.Bound(f => f.Notes); 
}) 
.ToolBar(t => 
{ 
    t.Create(); 

}) 
.Editable(e => e.Mode(GridEditMode.InCell)) 
.DataSource(d => d 
    .Ajax() 
    .Batch(false) 
    .ServerOperation(false) 
    .Model(m => 
    { 
     m.Id(r => r.Id); 
     m.Field(r => r.DetailSlot); 
     m.Field(r => r.Client).Editable(true); 
     m.Field(r => r.Product).Editable(true); 
     m.Field(r => r.Start).Editable(true); 
     m.Field(r => r.End).Editable(true); 
     m.Field(r => r.PurchaseOrder).Editable(true); 
     m.Field(r => r.Value).Editable(true); 
     m.Field(r => r.KPIPenalty).Editable(true); 
     m.Field(r => r.Notes).Editable(true); 
    }) 
    .Read(read => read.Action("SlotGrid_Read", "SalesFee", new { id = @Model.SalesFeeId })) 
    .Create(create => create.Action("SlotGrid_Create", "SalesFee")) 
    .Update(update => update.Action("SlotGrid_Update", "SalesFee")) 
    .Destroy(destroy => destroy.Action("SlotGrid_Destroy", "SalesFee")) 
) 
) 

이 문제에 대한 도움을 주시면 감사하겠습니다. 나는 어제 하루 종일 그것을 일하기 위해 노력하면서 놀고, 많은 운을 가지지 않고 있었다. 당신은 당신이 검도 그리드에서 "외래 키"열을 사용하는 것보다 편집 모드에서 드롭 다운을 표시 할 경우

사전

답변

0

에 감사드립니다.

columns.ForeignKey(p => p.DetailSlot, (System.Collections.IEnumerable)ViewData["Slots"], "Id", "Description"); 

나는 전체 코드와 데모 프로젝트를 게시 한 링크에서, link을 확인하시기 바랍니다.