如何将值后面的代码传递给Gridview UI的Header Template标签控件

时间:2012-01-02 11:02:33

标签: c# asp.net .net-3.5

在ASP.NET中使用C#,. NET3.5 F / W

您好,

我有一个包含文本框和标签控件的模板列的Gridview。

通过一些查询和存储过程的代码,我得到了一些数据到数据表。现在我想将这个数据表列字段或名称传递给Gridview Label控件。

如何将数据表列标题名称设置为标题模板的gridview标签控件?

3 个答案:

答案 0 :(得分:0)

试试这个

<asp:TemplateColumn >
        <ItemTemplate>
               <asp:Label id=Label1 runat="server"  
                  Text='<%# DataBinder.Eval(Container,EmployeeName") %>'>
               </asp:Label>

        </ItemTemplate>
  </asp:TemplateColumn>

答案 1 :(得分:0)

它被称为绑定here is link

<asp:TemplateColumn>
         <ItemTemplate HeaderText="PersonId">
                <asp:Label id=Label1 runat="server"  
                   Text='<%# Eval("NameOfColumnt") %>'>
                </asp:Label>
   </ItemTemplate>   
</asp:TemplateColumn>

答案 2 :(得分:0)

为此,您必须为网格视图提供数据源:

yourGridView.DataSource = yourDataTable;
yourGridView.DataBind();

执行此操作后,您只需将模板列中的每个控件链接到数据表中的列,例如:

<HeaderTemplate>SomeText</HeaderTemplate>
                <ItemTemplate>
                <asp:Label ID="a" Text='<%# Eval("nameOfTheColumn") %>' runat="server"></asp:Label>
                </ItemTemplate>

编辑: 关于您的其他问题,我建议您动态地将绑定字段添加到网格视图中,而不是立即在aspx中添加。像这样:

foreach (DataColumn column in dt.Columns)
        {
            BoundField nameColumn = new BoundField();
            nameColumn.DataField = column.ColumnName.ToString();
            nameColumn.SortExpression = column.ColumnName.ToString();
            nameColumn.HeaderText = column.ColumnName.ToString();

            gridView.Columns.Add(nameColumn);
        }

通过这种方式,您不必确切地知道您拥有多少列,并且能够将它们命名为数据表中的列。