在多表头中实现如下
的多表头实现思路:
第一:在页面编写界面代码。
第二:在后台实现逻辑编码。
第三:出来显现方式的样式。
编码实现:
第一界面编码:
<table cellpadding="0" cellspacing="0" class="coolitePanleHeader" width="780px">
<tr class="coolitePanleContent">
<td>
<asp:GridView ID="grdRptPowerSafety" UseAccessibleHeader="false" runat="server"
AutoGenerateColumns="false" AllowSorting="true"
OnRowCreated="grdRptPowerSafety_RowCreated" onsorting="grdRptPowerSafety_Sorting">
<Columns>
<asp:BoundField HeaderText="上级企业名称" runat="server" DataField="pname" Visible="false"
ShowHeader="true" ItemStyle-Width="126px"></asp:BoundField>
<asp:BoundField HeaderText="企业名称" runat="server" DataField="dname" ShowHeader="true"
ItemStyle-Width="126px"></asp:BoundField>
<asp:BoundField DataField="c04" ShowHeader="true" ItemStyle-Width="80px"/>
<asp:BoundField DataField="name" ShowHeader="true" ItemStyle-Width="120px"/>
<asp:BoundField DataField="c02" ShowHeader="true" ItemStyle-Width="60px"/>
<asp:BoundField DataField="f01" HeaderText="本月" ItemStyle-Width="40px" SortExpression="f01"/>
<asp:BoundField DataField="f02" HeaderText="累计" ItemStyle-Width="40px" SortExpression="f02"/>
<asp:BoundField DataField="f03" HeaderText="当月" ItemStyle-Width="40px" SortExpression="f03"/>
<asp:BoundField DataField="f04" HeaderText="累计" ItemStyle-Width="40px" SortExpression="f04"/>
<asp:BoundField DataField="f05" HeaderText="本月" ItemStyle-Width="40px" SortExpression="f05"/>
<asp:BoundField DataField="f06" HeaderText="累计" ItemStyle-Width="40px" SortExpression="f06"/>
<asp:BoundField DataField="c03" HeaderText="责任单位" ItemStyle-Width="100px" SortExpression="c03"/>
<asp:BoundField DataField="c05" HeaderText="备注" ItemStyle-Width="100px"/>
</Columns>
<FooterStyle CssClass="GridViewFooterStyle" />
<RowStyle CssClass="GridViewRowStyle" />
<SelectedRowStyle CssClass="GridViewSelectedRowStyle" />
<PagerStyle CssClass="GridViewPagerStyle" />
<AlternatingRowStyle CssClass="GridViewAlternatingRowStyle" />
<HeaderStyle CssClass="GridViewHeaderStyleHeaders" />
</asp:GridView>
</td>
</tr>
</table>
第二:后台代码实现
protected void grdRptPowerSafety_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
TableCellCollection tcc = e.Row.Cells;
tcc.Clear();
int intcount = tcc.Count;
//tcc.Add(new TableHeaderCell());
tcc[0].Attributes.Add("rowspan", "2");
tcc[1].Attributes.Add("rowspan", "2");
// tcc[0].Text = "企业名称</th>";
tcc.Add(new TableHeaderCell());
tcc[13].Attributes.Add("colspan", "3");
tcc[13].Text = "项目</th>";
tcc.Add(new TableHeaderCell());
tcc[14].Attributes.Add("colspan", "2");
tcc[14].Text = "本年</th>";
tcc.Add(new TableHeaderCell());
tcc[15].Attributes.Add("colspan", "2");
tcc[15].Text = "上年同期</th>";
tcc.Add(new TableHeaderCell());
tcc[16].Attributes.Add("colspan", "2");
tcc[16].Text = "同比(数量)</th>";
tcc.Add(new TableHeaderCell());
tcc[17].Attributes.Add("colspan", "2");
tcc[17].Text = "说明</th></tr><tr>";
//tcc[6].Attributes.Add("colspan", "3");
//tcc[6].Text = "说明1</th>";
//tcc[7].Text = "说明2</th>";
//tcc[8].Text = "说明3</th>";
for (int i = 2; i < intcount; i++)
{
tcc.Add(tcc[2]);
}
}
第三:扩张方式在 for (int i = 2; i < intcount; i++)
{
tcc.Add(tcc[2]);
}
中以I为准:如果前面实现以合并2行的情况下是从第二个开始的堆栈。