2014-11-08 174 views
0

我在綁定telerik mvc劍道網格中的下拉列表時遇到困難。無法綁定telerik kendo mvc網格中的下拉列表

我有一個綁定到網格的記錄的集合,每個記錄都有一個Foregin Key屬性。目前它正在渲染一個文本框在下拉應該在的地方。

Detail slot rendering as text input field

我已搜查throrugh的Telerik的文檔,並演示代碼,他們有一個工作下拉但是這隻能說明他們使用該字段一個ClientTemplate並不會顯示該模板的代碼。

在我的控制器動作我填充的ViewData與我的集合,如下所示:

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

而且DetailSlotDTO類如下:

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")) 
) 
) 

任何幫助,將不勝感激。我昨天一整天都在玩弄試圖讓它工作,並沒有太多的運氣。

如果你想顯示在編輯模式下的下拉比你在劍道格使用「ForeignKey的」列預先感謝您

回答

0

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

請檢查link,在這個環節上我已經發布完整的代碼和演示項目。