请给我一些建议,我可以做些什么来达到这个效果。 我想按数据库绑定标签(位于标题内),因为员工的指定可能会根据要求进行更改。 我已经尝试过按行绑定,但是它的工作量很小
<asp:GridView ID="Gridview2" runat="server" Width="99%" GridLines="Both"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<tr class="header1">
<th colspan="2">
<asp:Label run="server" ID="labeldesignation" Text='<%# Eval("designation") %>'>Designation</asp:Label></th>
</tr>
<tr class="header2">
<th>Emp_Id</th>
<th>Emp_Name</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("Emp_Id") %></td>
<td><%# Eval("Emp_Name") %></td>
</tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
答案 0 :(得分:0)
在page_Load的背面进行
设置标签的值
this.labeldesignation.Text = dataset[0].column[0].toString();
我将假定您使用DataTable而不是Dataset。
添加另一个要拉出的表,包括UI(Gridview)中表的各个部分 像页眉,页脚一样,也可以翻页。
答案 1 :(得分:0)
您可以使用FindControl
中的HeaderRow
访问标签。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//check if the row is a datarow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//cast the row back to a datarowview
DataRowView row = e.Row.DataItem as DataRowView;
//choose from which row you want the data into the header
if (e.Row.RowIndex == 4)
{
Label lbl = ((GridView)sender).HeaderRow.FindControl("labeldesignation") as Label;
lbl.Text = row["designation"].ToString();
}
}
}
PS GridView生成它自己的<tr>
和<td>
标签。不要将自己的模板放进去。检查简单GridView的html,看看它生成了什么html。