合并GridView中某列相同信息的行
来源:互联网 发布:阿部药妆 知乎 编辑:程序博客网 时间:2024/06/05 08:56
第一种:
出处:http://hi.baidu.com/flc_709/blog/item/20976454869fd957574e0020.html
/// <summary>
/// 合并GridView中某列相同信息的行(单元格)
/// </summary>
/// <param name="GridView1">GridView</param>
/// <param name="cellNum">第几列</param>
public static void GroupRows(GridView GridView1, int cellNum)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];
for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.Rows[i];
if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == GridView1.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
//正常换行
GVbkdj.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");
//下面这行是自动换行
//GVbkdj.Attributes.Add("style", "word-break:break-all;word-wrap:break-word");
第二种方式:递归方式做成一个控件
public class GroupedGridView : GridView
{
public int GroupedDepth
{
get
{
object val = this.ViewState["GroupedDepth"];
if (null == val)
{
return 0;
}
return (int)val;
}
set
{
if (value < 0)
throw new ArgumentOutOfRangeException("value", "value must be greater than or equal to zero");
this.ViewState["GroupedDepth"] = value;
}
}
protected override void OnDataBound(EventArgs e)
{
base.OnDataBound(e);
this.SpanCellsRecursive(0, 0, this.Rows.Count);
}
private void SpanCellsRecursive(int columnIndex, int startRowIndex, int endRowIndex)
{
if (columnIndex >= this.GroupedDepth || columnIndex >= this.Columns.Count)
return;
TableCell groupStartCell = null;
int groupStartRowIndex = startRowIndex;
for (int i = startRowIndex; i < endRowIndex; i++)
{
TableCell currentCell = this.Rows[i].Cells[columnIndex];
bool isNewGroup = (null == groupStartCell) || (0 != String.CompareOrdinal(currentCell.Text, groupStartCell.Text));
if (isNewGroup)
{
if (null != groupStartCell)
{
SpanCellsRecursive(columnIndex + 1, groupStartRowIndex, i);
}
groupStartCell = currentCell;
groupStartCell.RowSpan = 1;
groupStartRowIndex = i;
}
else
{
currentCell.Visible = false;
groupStartCell.RowSpan += 1;
}
}
SpanCellsRecursive(columnIndex + 1, groupStartRowIndex, endRowIndex);
}
}
- 合并GridView中某列相同信息的行
- 合并GridView中某列相同信息的行
- 合并GridView中某列相同信息的行
- 合并GridView中某列相同信息的行(单元格)
- 合并GridView中某列相同信息的行(单元格)
- 合并GridView中某列相同信息的行(单元格)
- 合并GridView中某列相同信息的行(单元格)
- 合并GridView中某列相同信息的行(单元格)
- asp.net 中的gridview 之合并GridView中某列相同信息的行(单元格)
- gridview合并相同信息行的问题 [问题点数
- GridView<asp:TemplateField>合并信息相同的行
- Gridview合并列中相同信息行的方法
- 合并GridView中某列相同信息的行(单元格), 并底色斑马纹
- 合并GridView中某列(含模板列)相同信息的行(单元格)
- GridView合并相同数据的行
- 合并gridview相同的行或者相同的列
- asp.net中gridview数据相同行的列合并
- Gridview中合并相同的行或列
- 如何设置虚拟机下面的分辨率
- 利用flexbook,做的翻页特效
- 超喜欢交友!
- Zend framework1.9.3与数据库的连接
- Oracle SQL语句
- 合并GridView中某列相同信息的行
- 做最好的自己——摘自李镇西的《做最好的老师》
- How to pass data to a Flex application using SWFObject 2.0
- 今天终于又开始非一般的感觉了。
- 表格 添加 滚动条
- 使用Def文件导出Dll文件
- 聊到考试后
- log4j用法http://zengjinliang.javaeye.com/blog/171550
- 嵌入式Linux开发简介(二)