Я не уверен, что понимаю ваш вопрос, но если вы хотите привязать источник данных к меткам в шаблонах HeaderTemplate и ItemTemplate TemplateField, вы можете сделать следующее:
<asp:TemplateField HeaderText="YourField">
<HeaderTemplate>
<asp:Label runat="server" Text='<%# Eval("header_database_field") %>'/>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("content_database_field") %>'/>
</ItemTemplate>
</asp:TemplateField>
Где header_database_field
иcontent_database_field
- это поля из вашей базы данных, которые вы хотите связать.
Если вы хотите присвоить имена столбцов DataTable одной из меток TemplateField, вы можете сделать что-то подобное программно во время RowDataBoundсобытие, хотя я не уверен, почему вы хотите:
DataTable datatable = new DataTable(); // your dt
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
((Label)e.Row.Cells[0].Controls[1]).Text = datatable.Columns[0].ColumnName;
}
}
Повтор datatable
с вашей DataTable и изменить индексы для ссылки на ваши Cell / Label (s) /ColumnNames.