Asp.net mvc 3 检查单元格相对于上一行的值
目前,我正在研究一个具有一些有趣逻辑的网格。其中的逻辑目前已经到位,以防止在一行中显示重复数据 我是说这个。我有一个多栏的网格(10)。目前,在HtmlDataCellPrepared方法中设置了一个进程,以检查单元格的值是否等于会话变量。如果是,则留空。下面是显示发生了什么的代码Asp.net mvc 3 检查单元格相对于上一行的值,asp.net-mvc-3,devexpress-mvc,Asp.net Mvc 3,Devexpress Mvc,目前,我正在研究一个具有一些有趣逻辑的网格。其中的逻辑目前已经到位,以防止在一行中显示重复数据 我是说这个。我有一个多栏的网格(10)。目前,在HtmlDataCellPrepared方法中设置了一个进程,以检查单元格的值是否等于会话变量。如果是,则留空。下面是显示发生了什么的代码 settings.HtmlDataCellPrepared = (sender, e) => { if (e.DataColumn.FieldName == "Progr
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();
}
我的目标是替换此会话变量,因为有时列中根本没有填充任何内容。我需要将当前值与之前的行进行比较。如果有任何帮助,我将不胜感激。因此,我在进一步研究后找到了一个解决方案。消除会话变量的最简单方法是查看前一行的数据,看看是否存在相同的值
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 = " ";
}
}
当然,您会跳过第一行,但在这之后,查看每一行,看看前一行是否有相同的数据