Вы можете изменить имя столбца по порядковому положению - хотя это не надежный способ, если столбцы переупорядочиваются:
grd.HeaderRow.Cells(iCount).Text = "my column name"
Существует свойство liitle известно? Мало используется?) Заголовкаячейки с именем AccessibleHeaderText
<asp:TemplateField HeaderText="Default Name" AccessibleHeaderText="MY_FIXED_KEY_VALUE">
<ItemTemplate>
<asp:Label ID="CustRef" runat="server" Text='<%# Bind("MyField") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
Предназначены для автоматизации страниц, поэтому:
For iCount = 0 To grd.HeaderRow.Cells.Count - 1
Dim oCol As DataControlField = grd.Columns(iCount)
If String.Compare(oCol.AccessibleHeaderText, "MY_FIXED_KEY_VALUE", True) = 0 Then
grd.HeaderRow.Cells(iCount).Text = "my column name"
Exit For
End If
Next
будет достаточно устойчивым.
Конечно, вы можете использовать case или что-то еще для циклирования, хотястолбцы
HTH