Вот полный пример использования старой DataGrid ... так что кажется, что "!" Трюк имеет широкое применение. Это работало под ASP.NET в VS2008. Конечно, просто используйте правильные имена элементов для использования GridView.
<%@ Page
Language="C#"
AutoEventWireup="true"
CodeBehind="Default.aspx.cs"
Inherits="WebApplication2._Default"
%>
<%@Import
Namespace="System.Collections.Generic"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/C#" runat="server">
void initList()
{
List<String> myList = new List<String>();
myList.Add("Hello");
myList.Add("Chatting");
myList.Add("Goodbye");
Grid1.DataSource = myList;
Grid1.DataBind();
}
</script>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<%initList(); %>
<asp:DataGrid runat="server" ID="Grid1" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="!" DataFormatString="Data: {0}" HeaderText="Dyad"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
Так что в GridView внутренний раздел будет
<asp:GridView runat="server" ID="Grid1" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="!" DataFormatString="Data: {0}" HeaderText="Dyad"/>
</Columns>
</asp:GridView>
Если вы переключаетесь назад и вперед, обратите внимание, что VS2008 (по крайней мере) не может повторно объявить тип элемента управления в классе Designer.cs, поэтому вам придется изменить это вручную, если просто редактировать имена элементов.