2014-11-20 54 views
0

目前我正在研究一个有一些有趣逻辑的网格。它目前的逻辑已经到位,以防止连续显示重复的数据。检查单元格与前一行的值

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

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

回答

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 = " "; 
     } 
    } 

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

相关问题