【发布时间】:2012-01-02 11:02:32
【问题描述】:
在 ASP.NET 中使用 C#、.NET3.5 F/W
嗨,
我有一个包含文本框和标签控件的模板列的 Gridview。
通过一些查询和存储过程的代码,我得到了一些数据到数据表中。现在我想将此数据表列字段或名称传递给 Gridview 标签控件。
如何将数据表列标题名称设置为标题模板的gridview标签控件?
【问题讨论】:
在 ASP.NET 中使用 C#、.NET3.5 F/W
嗨,
我有一个包含文本框和标签控件的模板列的 Gridview。
通过一些查询和存储过程的代码,我得到了一些数据到数据表中。现在我想将此数据表列字段或名称传递给 Gridview 标签控件。
如何将数据表列标题名称设置为标题模板的gridview标签控件?
【问题讨论】:
叫做绑定here is link
<asp:TemplateColumn>
<ItemTemplate HeaderText="PersonId">
<asp:Label id=Label1 runat="server"
Text='<%# Eval("NameOfColumnt") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
【讨论】:
试试这个
<asp:TemplateColumn >
<ItemTemplate>
<asp:Label id=Label1 runat="server"
Text='<%# DataBinder.Eval(Container,EmployeeName") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
【讨论】:
为此,您必须为网格视图提供数据源:
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);
}
这样您就不必确切知道您有多少列,并且能够按照它们在数据表中的位置来命名它们。
【讨论】: