检查单元格与上一行的值

时间:2014-11-20 20:11:52

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

目前,我正在开发一个有一些有趣逻辑的网格。目前的逻辑是为了防止连续显示重复数据。

由此,我的意思是这个。我有一个有多列的网格(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();
            }

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

1 个答案:

答案 0 :(得分:0)

经过一番研究,我找到了解决方案。消除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 = " ";
        }
    }

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