asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

Asp.net


发布日期:2018年02月09日
 
Asp.net
本文为大家介绍下如何实现动态生成表同一列中数据相同的单元格需要合并具体实现如下由此需求的朋友可以参考下希望对大家有所帮助

业务需要动态生成表同一列中数据相同的单元格需要合并
解决方案创建Table控件处理类代码如下

复制代码 代码如下:
/// <summary>表格控件相关操作类
/// </summary>
public static class aspTable
{
/// <summary>合并行
/// </summary>
///   <remarks>版权信息::</remarks>
/// <param name="tbl">Table</param>
/// <param name="startRow">起始行</param>
/// <param name="endRow">结束行</param>
/// <param name="colIndex">要合并的列索引</param>
public static void SetRowSpan(Table tbl int startRow int endRow int colIndex)
{
int countRowSpan = ;
int spanRow = startRow;
string spanText = tblRows[startRow]Cells[colIndex]Text;
for (int rowIndex = startRow; rowIndex <= endRow; rowIndex++)
{
string currentText = tblRows[rowIndex]Cells[colIndex]Text;
//内容是否相同
if (currentText == spanText)
{
countRowSpan++;
//移除被合并的单元格
if (rowIndex != spanRow)
{
tblRows[rowIndex]CellsRemoveAt(colIndex);
}
}
else
{
//合并
tblRows[spanRow]Cells[colIndex]RowSpan = countRowSpan;
//从此行再向下比较(重置)
countRowSpan = ;
spanRow = rowIndex;
spanText = currentText;
}
}
//合并最后一项
tblRows[spanRow]Cells[colIndex]RowSpan = countRowSpan;
}
/// <summary>合并行支持多列
/// </summary>
///  <remarks><SPAN style="FONTFAMILY: Arial Helvetica  sansserif">版权信息: Arial  Helvetica sansserif">   ::</remarks></SPAN>
/// <param name="tbl">Table</param>
/// <param name="startRow">起始行</param>
/// <param name="endRow">结束行</param>
/// <param name="colIndex">要合并的列索引</param>
public static void SetRowSpans(Table tbl int startRow int endRow params int[] colIndexs)
{
ArrayList al = new ArrayList(colIndexs);
alSort();
for (int i = alCount ; i >= ; i)
{
SetRowSpan(tbl startRow endRow (int)al[i]);
}
}
}


需要注意的几点起始行一般设置为因为是标题行结束行一般设置为Table的总行数即可(最后一行)

               

上一篇:ASP.Net的Application介绍

下一篇:asp.net跳转页面的3种方法