`

GridView动态创建列、多行表头

 
阅读更多

一、动态创建列

复制代码
//创建GridView列的方法
privatevoidCreateGridColumn(stringdataField,stringheaderText,intwidth,stringheaderStyle,stringitemStyle)
{
BoundFieldbc
=newBoundField();
bc.DataField
=dataField;
bc.HeaderText
=headerText;
bc.HeaderStyle.CssClass
=headerStyle;//若有默认样式,此行代码及对应的参数可以移除
bc.ItemStyle.CssClass
=itemStyle;//若有默认样式,此行代码及对应的参数可以移除
GridView1.Columns.Add(bc);//把动态创建的列,添加到GridView中
GridView1.Width
=newUnit(GridView1.Width.Value+width);//每添加一列后,要增加GridView的总体宽度

}
复制代码

在GridView绑定之前,调用以上方法:

复制代码
//绑定GridView的数据
privatevoidBindGrid()
{
#region添加动态列
GridView1.Columns.Clear();
GridView1.Width
=newUnit(0);

CreateGridColumn(
"name","名称",150,"cuntleft","cuntleft");
//再次调用CreateGridColumn方法,动态创建其他的列
//.......
#endregion

//dt:数据源
GridView1.DataSource
=dt;
GridView1.DataBind();
}
复制代码

二、动态创建表头
在GridView的RowCreated事件中,添加以下代码:
复制代码
//设计表头
protectedvoidSmartGridView1_RowCreated(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.Header)
{
TableCellCollectionheader
=e.Row.Cells;
header.Clear();

stringheadtxt="名称</th>";
headtxt
+="<thcolspan='4'>汇总</th>";//跨四列
headtxt+="<th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th>";
headtxt=headtxt.Substring(0,headtxt.Length-5);//移除掉最后一个</th>

TableHeaderCellcell
=newTableHeaderCell();
cell.Attributes.Add(
"rowspan","2");//跨两行
cell.Text
=(headtxt);
header.Add(cell);
}
}
复制代码
最后的显示的GridView表头结果如下:
名称汇总星期一星期二星期三星期四
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics