我有一个剑道网格。此kendo网格视图模型包含一个至少有5个项目的Dictionary对象。顺便说一句,这些项目应该是动态的。项目偶尔可能超过5个。
所以,必须要做:
我想显示这5个项目,例如每个单独的列
我想通过ajaxcall(在剑道读取功能中)提供此网格。
我想内联编辑此网格。
@(Html.Kendo().Grid<TariffDetailViewModel>()
.Name("grd_Tariff")
.Columns(columns =>
{
columns.Bound(c => c.Commissions);
columns.Command(c => { c.Edit().Text("Edit"); }).Width(200);
})
.ToolBar(t => t.Create().Text("New").HtmlAttributes(new {@id = "newTariffDetail"}))
.Editable(e => e.Mode(GridEditMode.InLine))
.Resizable(resizing => resizing.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.Scrollable(s => s.Height("auto"))
.Pageable(x => x.Enabled(true).ButtonCount(ReportPageSize).Refresh(true))
.AutoBind(false)
.DataSource(dataBinding => dataBinding
.Ajax()
.PageSize(DefaultPageSize)
.Model(m => m.Id(t => t.TariffId))
.Read(a => a.Action(MVC.Tariff.ActionNames.GetTariffDetails, MVC.Tariff.Name))
.Update(update => update.Action(MVC.Tariff.ActionNames.UpdateTariffDetails, MVC.Tariff.Name))
.Create("Create", "Tariff")
.Events(events => events.Error("grd_TariffDetail_OnError"))
)
)
我的词典对象:
public class TariffDetailViewModel
{
public Dictionary<string, object> Commissions { get; set; }
}
提前致谢。
答案 0 :(得分:0)
您的问题类似于this,除非您想要动态的问题。你的:
词典对象,最少有5个项目。顺便说一下,这些项目应该动态。项目偶尔可能超过5个。
对于您的情况,我认为您必须知道可能存储在您字典中的所有字段。例如,您的字典最多可包含10个字段,如:
以dojo为例
答案 1 :(得分:0)
如果有可能的佣金类型列表,您可以根据每种佣金类型动态定义一列:
@(Html.Kendo().Grid<TariffDetailViewModel>()
.Name("grd_Tariff")
.Columns(columns =>
{
foreach(var commisionType in Model.CommissionTypes)
{
columns.Bound(typeof(double), "Commissions['" + commissionType.Name + "'].Value")
.Title(commissionType.Name);
}
columns.Command(c => { c.Edit().Text("Edit"); }).Width(200);
})
他们的网站上有类似的问题: http://www.telerik.com/forums/dictionary-keys-binding