【问题标题】:Computed column on a MVC3 razor WebgridMVC3 razor Webgrid 上的计算列
【发布时间】:2012-05-07 19:48:26
【问题描述】:

这是我的 webgrid。我正在尝试添加一个显示计算值的列“EndDate”

var grid = new WebGrid(canPage: true, rowsPerPage: Model.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
    grid.Bind(Model.MyRecords, rowCount: Model.TotalRecords, autoSortAndPage: false);

    grid.Pager(WebGridPagerModes.All);
    @grid.GetHtml(htmlAttributes: new { id = "grid" },
                        columns: grid.Columns(

                        grid.Column("StartDate", "Live Date"),
                        grid.Column("EndOffsetSeconds", "End in Seconds"),
                        grid.Column("StartDate"+TimeSpan.FromSeconds("OffsetSeconds"), "Difference"),

                        grid.Column(header: "Action", format: (item) => Html.ActionLink("Edit", "Edit", new { id = item.ID })),
                        grid.Column(format: (item) => Html.ActionLink("Copy", "CopyRecord", new { id = item.ID }))

                    ));

我想显示 EndDate 来代替第三列。

Enddate = StartDate+TimeSpan.FromSeconds(EndOffsetSeconds)

在第三列我想显示 StartDate+TimeSpan.FromSeconds(EndOffsetSeconds) 的结果

其中 StartDate 是 DateTime 类型,EndOffsetSeconds 是 Integer 类型

示例 DateTime StartDate =05/20/2012 12:15:03 int EndOffsetSeconds=124000;

如何使用 Webgrid 添加计算列?

提前谢谢你

【问题讨论】:

    标签: asp.net-mvc-3 c#-4.0 webgrid razor-grid


    【解决方案1】:

    您可以在模型中添加一个属性并在 get 方法中进行计算。

    class MyRecord
    {
      public DateTime StartDate {get;set;}
      public int EndOffsetSeconds {get;set;}
    
      public DateTime CalculatedEndTime
      {
        get
        {
          return StartDate + TimeSpan.FromSeconds( EndOffsetSeconds );
        }
      }
    }
    

    然后只需指向网格中的计算属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2013-06-04
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      相关资源
      最近更新 更多