DataList控件EditItemTemplate中的控件如何访问?
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误信息: BC30451: 名称“Title”未声明。
源错误:
行 40: Sub DataList_UpdateCommand(Sender As Object,e As DataListCommandEventArgs)
行 41: Dim SQL As String
行 42: SQL="update Titles set title='" & Title.Text & "',price=" & Price.Text & " Where " & MyList.DataKeyField & "='" & _
行 43: MyList.DataKeys(e.Item.ItemIndex) & "'"
行 44: ExecuteSQL(SQL)
代码如下:
<%@ Page Language="VB" Debug="True" Explicit="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server" language="vb">
Sub Submit_Click(Source As Object, E As EventArgs)
Label1.text="查询类型为 " & Select1.SelectedItem.Text
BindList()
End Sub
Sub BindList()
Dim DS As DataSet
Dim MyConnection As SqlConnection
Dim MyCommand As SqlDataAdapter
MyConnection=New SqlConnection("server=(local);uid=sa;pwd=sa;database=pubs")
MyCommand=New SqlDataAdapter("select * from Titles where type='" + Select1.SelectedItem.Value + "'",MyConnection)
DS=New DataSet()
MyCommand.Fill(DS,"Titles")
MyList.DataSource = DS.Tables("Titles").DefaultView
MyList.DataBind()
End Sub
Sub ExecuteSQL(SQL As String)
Dim MyConnection As SqlConnection
Dim MyCommand As SqlCommand
MyConnection=New SqlConnection("server=(local);uid=sa;pwd=sa;database=pubs")
MyConnection.Open
MyCommand=New SqlCommand(SQL,MyConnection)
MyCommand.ExecuteNonQuery
End Sub
Sub DataList_EditCommand(Sender As Object,e As DataListCommandEventArgs)
MyList.EditItemIndex=e.Item.ItemIndex
BindList()
End Sub
Sub DataList_UpdateCommand(Sender As Object,e As DataListCommandEventArgs)
Dim SQL As String
SQL="update Titles set title='" & Title.Text & "',price=" & Price.Text & " Where " & MyList.DataKeyField & "='" & _
MyList.DataKeys(e.Item.ItemIndex) & "'"
ExecuteSQL(SQL)
BindList()
End Sub
Sub DataList_CancelCommand(Sender As Object,e As DataListCommandEventArgs)
MyList.EditItemIndex=-1
BindList()
End Sub
</script>
<HTML>
<HEAD>
<title>New ASP.NET Document </title>
</HEAD>
<body bgcolor="#ffffff" topmargin="0" marginheight="0">
<form runat="server" method="post">
<asp:DropDownList id="Select1" runat="server">
<asp:listitem >psychology</asp:listitem>
<asp:listitem >business</asp:listitem>
<asp:listitem >popular_comp</asp:listitem>
</asp:DropDownList>
<asp:Button id="Submit" runat="Server" onClick="Submit_Click" text="Search"></asp:Button>
<asp:Label id="Label1" runat="Server"></asp:Label>
<asp:datalist id="MyList" GridLines="Horizontal" layout="flow" showfooter=true borderwidth=1 runat="server" DataKeyField="title_id" OnEditCommand="DataList_EditCommand" OnUpdateCommand="DataList_UpdateCommand" OnCancelCommand="DataList_CancelCommand" width="500">
<HeaderTemplate>
<center><b><font face="宋体" size=3>产品列表</font></b></center>
</HeaderTemplate>
<ItemTemplate>
<%# Container.DataItem("title_id") %></td>
<td><%# Container.DataItem("title") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"price","${0}") %></td>
<td><asp:LinkButton runat="server" text="编辑" CommandName="Edit"/>
</ItemTemplate>
<EditItemTemplate>
<%# Container.DataItem("title_id") %></td>
<td><asp:TextBox Runat="Server" width="140" id="Title" text='<%# Container.DataItem("title") %>' /></d>
<td><asp:TextBox Runat="Server" width="80" id="Price" text='<%# Container.DataItem("price") %>' /></td>
<td><asp:LinkButton runat="server" text="更新" CommandName="Update" /> <asp:LinkButton runat="server" text="取消" CommandName="Cancel"/>
</EditItemTemplate>
<!--以上编辑模板中的Title和Price怎么读取的时候说未定义?-->
</asp:datalist>
</form>
</body>
</HTML>