在实际工作中,往往需要合并表格头部的单元格,下面就是一个实现的例子。运行结果如图:

c#
<%@ page language="c#" autoeventwireup="true" %>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en"
"http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<script runat="server">
icollection createdatasource()
{
system.data.datatable dt = new system.data.datatable();
system.data.datarow dr;
dt.columns.add(new system.data.datacolumn("学生姓名", typeof(system.string)));
dt.columns.add(new system.data.datacolumn("语文", typeof(system.decimal)));
dt.columns.add(new system.data.datacolumn("数学", typeof(system.decimal)));
dt.columns.add(new system.data.datacolumn("英语", typeof(system.decimal)));
for (int i = 0; i < 8; i++)
{
system.random rd = new system.random(environment.tickcount * i); ;
dr = dt.newrow();
dr[0] = "学生" + i.tostring();
dr[1] = system.math.round(rd.nextdouble() * 100, 2);
dr[2] = system.math.round(rd.nextdouble() * 100, 2);
dr[3] = system.math.round(rd.nextdouble() * 100, 2);
dt.rows.add(dr);
}
system.data.dataview dv = new system.data.dataview(dt);
return dv;
}
protected void page_load(object sender, eventargs e)
{
if (!ispostback)
{
gridview1.bordercolor = system.drawing.color.darkorange;
gridview1.datasource = createdatasource();
gridview1.databind();
}
}
protected void gridview1_rowcreated(object sender, gridviewroweventargs e)
{
if (e.row.rowtype == datacontrolrowtype.header)
{
gridviewrow rowheader = new gridviewrow(0, 0, datacontrolrowtype.header, datacontrolrowstate.normal);
rowheader.backcolor = system.drawing.color.white;
rowheader.font.bold = true;
tablecellcollection cells = e.row.cells;
tablecell headercell = new tablecell();
headercell.text = "";
rowheader.cells.add(headercell);
headercell = new tablecell();
headercell.text = "学生成绩";
headercell.columnspan = cells.count - 1;
headercell.horizontalalign = horizontalalign.center;
rowheader.cells.add(headercell);
rowheader.visible = true;
gridview1.controls[0].controls.addat(0, rowheader);
}
}
protected void gridview1_rowdatabound(object sender, gridviewroweventargs e)
{
e.row.attributes.add("style", "background:#fff");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>合并 gridview 的表头单元格</title>
</head>
<body>
<form id="form1" runat="server">
<asp:gridview id="gridview1" runat="server" cellspacing="1" cellpadding="3"
font-size="12px" width="300px" backcolor="orange" borderwidth="0"
onrowdatabound="gridview1_rowdatabound" onrowcreated="gridview1_rowcreated">
</asp:gridview>
</form>
</body>
</html>
vb.net
<%@ page language="vb" %>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<script runat="server">
function createdatasource() as icollection
dim dt as system.data.datatable = new system.data.datatable
dim dr as system.data.datarow
dt.columns.add(new system.data.datacolumn("学生姓名", gettype(system.string)))
dt.columns.add(new system.data.datacolumn("语文", gettype(system.decimal)))
dt.columns.add(new system.data.datacolumn("数学", gettype(system.decimal)))
dt.columns.add(new system.data.datacolumn("英语", gettype(system.decimal)))
dim i as integer = 0
for i = 0 to 7
dim rd as system.random = new system.random(environment.tickcount * i)
dr = dt.newrow
dr(0) = "学生" + i.tostring
dr(1) = system.math.round(rd.nextdouble * 100, 2)
dr(2) = system.math.round(rd.nextdouble * 100, 2)
dr(3) = system.math.round(rd.nextdouble * 100, 2)
dt.rows.add(dr)
next
dim dv as system.data.dataview = new system.data.dataview(dt)
return dv
end function
protected sub page_load(byval sender as object, byval e as eventargs)
if not ispostback then
gridview1.bordercolor = system.drawing.color.darkorange
gridview1.datasource = createdatasource()
gridview1.databind()
end if
end sub
protected sub gridview1_rowcreated(byval sender as object, byval e as gridviewroweventargs)
if e.row.rowtype = datacontrolrowtype.header then
dim rowheader as gridviewrow = new gridviewrow(0, 0, datacontrolrowtype.header, datacontrolrowstate.normal)
rowheader.backcolor = system.drawing.color.white
rowheader.font.bold = true
dim cells as tablecellcollection = e.row.cells
dim headercell as tablecell = new tablecell
headercell.text = ""
rowheader.cells.add(headercell)
headercell = new tablecell
headercell.text = "学生成绩"
headercell.columnspan = cells.count - 1
headercell.horizontalalign = horizontalalign.center
rowheader.cells.add(headercell)
rowheader.visible = true
gridview1.controls(0).controls.addat(0, rowheader)
end if
end sub
protected sub gridview1_rowdatabound(byval sender as object, byval e as gridviewroweventargs)
e.row.attributes.add("style", "background:#fff")
end sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>合并 gridview 的表头单元格</title>
</head>
<body>
<form id="form1" runat="server">
<asp:gridview id="gridview1" runat="server" cellspacing="1" cellpadding="3"
font-size="12px" width="300px" backcolor="orange" borderwidth="0"
onrowdatabound="gridview1_rowdatabound" onrowcreated="gridview1_rowcreated">
</asp:gridview>
</form>
</body>
</html>文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



