绑定列时如何访问项值?

时间:2013-11-26 14:13:58

标签: c# asp.net-mvc kendo-ui kendo-grid

我是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; }

}

0 个答案:

没有答案