DataItem的疑惑
下面有一段是有关datagrid的具体代码如下
datagrid.aspx:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<title>Sample ASP.NET Page</title>
<body>
<script language="vb" runat="server">
Sub Page_Load(sender As Object,e As EventArgs)
Dim ConnStr as String
ConnStr="Data Source=localhost;User ID=sa;Password=99103453;Initial Catalog=pubs"
Dim conn as SqlConnection=New SqlConnection(ConnStr)
Try
conn.Open()
Dim da as SqlDataAdapter=New SqlDataAdapter("select * from authors",conn)
Dim ds As New DataSet
da.Fill(ds,"authors")
Dim dv1 as New DataView(ds.Tables("authors"))
dv1.Sort="au_fname,au_lname Desc"
DataGrid1.DataSource=dv1
DataGrid1.DataBind()
Catch ex As SqlException
Status.Text=ex.Message
Finally
conn.Close()
End Try
end Sub
Sub Edit_Grid(sender As Object,e As DataGridCommandEventArgs)
DataGrid1.EditItemIndex=e.Item.ItemIndex
DataGrid1.DataBind()
end Sub
Sub Cancel_Grid(sender As Object,e As DataGridCommandEventArgs)
end Sub
Sub Update_Grid(sender As Object,e As DataGridCommandEventArgs)
end Sub
</script>
<h1>DataView object and data binding</h1>
<form runat="server">
<asp:label id="Status" runat="server" /><br>
<asp:datagrid id="DataGrid1" runat="server"
AutoGenerateColumns="false"
DatakeyFiled="au_id"
OnEditCommand="Edit_Grid"
OnCancelCommand="Cancel_Grid"
OnUpdateCommand="Update_Grid"
BackColor="lightgreen"
GridLines="none"
Font-Name="Arial"
Font-Size="10pt"
HeaderStyle-BackColor="gray"
MaintainState="false"
ShowFooter="false" />
<Columns>
<asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" />
<asp:TemplateColumn HeaderText="ID">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="au_id" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Last Name">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"au_lname") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="au_lname" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"au_lname") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="First Name">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"au_fname") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="au_fname" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"au_fname") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Phone">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"phone") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="phone" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"phone") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Address">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"address") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="address" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"address") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="City">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"city") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="city" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"city") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="State">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"state") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="state" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"state") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Zip">
<ItemTemplate>
<asp:label Text='<%# DataBinder.Eval(Container.DataItem,"zip") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox width="100" id="zip" ReadOnly="true" text='<%# DataBinder.Eval(Container.DataItem,"zip") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Contract?">
<ItemTemplate>
<asp:checkbox Enabled="false" Checked='<%# DataBinder.Eval(Container.DataItem,"contract") %>' runat="server" />
</ItemTemplate>
<ItemTemplate>
<asp:checkbox Enabled="true" Checked='<%# DataBinder.Eval(Container.DataItem,"contract") %>' runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
在datagrid这段代码运行编译报错
编译器错误信息: BC30456: “DataItem”不是“System.Web.UI.Page”的成员。
源错误:
行 56: <asp:TemplateColumn HeaderText="ID">
行 57: <ItemTemplate>
行 58: <asp:label Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>' runat="server" />
行 59: </ItemTemplate>
行 60: <EditItemTemplate>
源文件: c:\inetpub\wwwroot\aspnet\610.aspx 行: 58
请各位高人指点一下,附我的操作系统是xp sp2,.net的版本信息如下:
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.210