【问题标题】:Check value of cell versus previous row检查单元格与前一行的值
【发布时间】:2014-11-20 20:11:51
【问题描述】:

目前我正在研究一个有一些有趣逻辑的网格。其内部的逻辑目前已到位,以防止连续显示重复数据。

我的意思是这个。我有一个包含多列 (10) 的网格。目前,在 HtmlDataCellPrepared 方法中设置了一个进程来检查单元格的值是否等于会话变量。如果是,则将其留空。下面是显示发生了什么的代码。

settings.HtmlDataCellPrepared = (sender, e) =>
        {
            if (e.DataColumn.FieldName == "ProgramArea")
            {
                if (HttpContext.Current.Session["QR_ProgramArea"] != null &&
                    HttpContext.Current.Session["QR_ProgramArea"].ToString() == e.CellValue.ToString())
                    e.Cell.Text = " ";
                HttpContext.Current.Session["QR_ProgramArea"] = e.CellValue.ToString();
            }

我的目标是替换此会话变量,因为有时该列中根本没有填充任何内容。我需要将当前值与之前的行进行比较。任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net-mvc-3 devexpress-mvc


    【解决方案1】:

    所以经过一番研究,我想出了一个解决方案。消除 Session 变量的最简单方法是查看前一行的数据以查看是否存在相同的值。

    settings.HtmlDataCellPrepared = (sender, e) =>
    {
        var grid = sender as MVCxGridView;
        if (e.DataColumn.FieldName == "ProgramArea")
        {
            if (e.VisibleIndex - 1 >= 0)
            {
                var previousRow = grid.GetDataRow(e.VisibleIndex - 1);
                if (e.CellValue.ToString() == previousRow["ProgramArea"].ToString())
                    e.Cell.Text = " ";
            }
        }
    

    你自然会跳过第一行,但在那之后,查看每一行,看看前一行是否有相同的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      相关资源
      最近更新 更多