如何将值绑定到标头模板内部的数据库中的标签?

时间:2018-11-13 08:34:06

标签: c# html asp.net

请给我一些建议,我可以做些什么来达到这个效果。 我想按数据库绑定标签(位于标题内),因为员工的指定可能会根据要求进行更改。 我已经尝试过按行绑定,但是它的工作量很小

<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>

2 个答案:

答案 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。