我是asp.net mvc以及kendoui的新手,所以这个问题可能看起来微不足道(对于kendo和mvc来说)。但是,非常感谢任何帮助/解释。
我正在使用kendo ui mvc帮助器构建一个网格。在很多情况下我想访问商品数据。我已经弄清楚如何在为给定单元格创建模板时访问它,如下所示。
尽可能地,我已经创建了一个创建数据属性的函数,我想从数据库中读取该属性而不是硬编码。这是我目前的代码。
@functions
{
public static Dictionary<string, object> BuildGroupNameAttributes(string value)
{
var attributes = new Dictionary<string, object> { { "data-groupname", value } };
return attributes;
}
}
<div id="dotComDiv">
@(Html.Kendo().Grid(Model)
.Name("DotComGrid")
.Columns(columns =>
{
columns.Bound(p => p.GrossDemand.ThisYear).Title("TY").HeaderHtmlAttributes(BuildGroupNameAttributes("Gross Demand"));
columns.Bound(p => p.GrossDemand.ThisYear).Title("TY").HeaderHtmlAttributes(BuildGroupNameAttributes("Gross Demand")).Template(@<text>@string.Format("{0:0,0}", @item.GrossDemand.ThisYear)</text>);
}).Scrollable(src => src.Height(500))
)
</div>
我似乎无法解决的问题是
columns.Bound(p => p.GrossDemand.ThisYear).Title("TY").HeaderHtmlAttributes(BuildGroupNameAttributes("Gross Demand"));
我想从绑定项中读取,而不是硬编码“Gross Demand”。好吧,
columns.Bound(p => p.GrossDemand.ThisYear).Title("TY").HeaderHtmlAttributes(BuildGroupNameAttributes(@item.GroupName));
但是,我无法像这样访问item对象。但是,如果您查看上面的模板,我可以访问@item
,如果它包含在@<text>
为什么会这样,以及如何将项目值传递给函数?
谢谢!
@model IEnumerable<KendoTest.Models.DotComGridModel>
public class GridColumnGroup
{
public string ColumnGroupName { get; set; }
public double ThisYear { get; set; }
public double LastYear { get; set; }
public double Planned { get; set; }
}
public class DotComGridModel
{
public string Name { get; set; }
public GridColumnGroup GrossDemand { get; set; }
public GridColumnGroup Shipped { get; set; }
public GridColumnGroup ReturnRate { get; set; }
public GridColumnGroup DemandGM { get; set; }
public GridColumnGroup Traffic { get; set; }
public GridColumnGroup DemanConversion { get; set; }
public GridColumnGroup DemandAOV { get; set; }
}