asp.netGridView使用技巧
GridView属性介绍
AutoGenerateColumns 如果为true表示自动生成数据列,如果为false关闭自动生成状态
何为自动生成数据列 比如这么一个表格:
country |
name1 |
name2 |
name3 |
… |
||||||
批次 |
人次 |
批次 |
人次 |
批次 |
人次 |
… |
||||
row1 |
|
|
|
|
|
|
|
|||
row1 ..... |
|
|
|
|
|
|
|
此表,行,列,都不确定数量,如果用绑定<asp:boundFiled>则不能去确定其数量,无法实现绑定,列头可以再gridview_rouCreate中按照数量去增加或者在绑定之前添加都可以,但是,数据绑定列就无法确定数量,此时AutoGenerateColumns=true就起了作用,他会按照dataTable中的列数去自动生成列,缺点:自动生成的列要和表头一一对应,所以在设计时必须考虑顺序问题。
/// <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;
}
}
}
}