我们正在尝试使用ASP:DropDownList中的值从ASP.Net DetailsView将数据更新到数据库,但是当用户单击“更新”按钮时,没有任何反应。只有取消按钮才有效。
DropDownList将显示加载到其中的数据库中的数据,但我们无法进行更新。
我假设我遗漏了标记编码中的内容。
这是DropDownList的标记:
<asp:TemplateField HeaderText="Class:" SortExpression="ClassID">
<EditItemTemplate>
<asp:DropDownList
ID="DropDownListClass"
Runat="server"
DataSourceID="SqlDataSourceClasses"
DataTextField = "ClassName"
DataValueField="ID"
AutoPostBack="True"
AppendDataBoundItems="true">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorEditDropDownListClass" runat="server"
ControlToValidate="DropDownListClass"
ErrorMessage="Please select a class." Font-Bold="True" Font-Italic="True" ForeColor="Red"
SetFocusOnError="True" Display="Dynamic">
</asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Literal ID="LiteralClass" runat="server"
Text='<%# FormatAsMixedCase(Eval("ClassName").ToString())%>' />
</ItemTemplate>
<ItemStyle ForeColor="Blue" />
</asp:TemplateField>
这是DataSource的标记,它是一个简单的查找表:
<asp:SqlDataSource
ID="SqlDataSourceClasses"
runat="server"
ConnectionString="<%$ ConnectionStrings:Islamic Knowledge Academy Staff System %>"
SelectCommand="SELECT [ID], [ClassName], [Grade] FROM [Classes]">
</asp:SqlDataSource>
答案 0 :(得分:1)
伊马德-UD-DEN,
我认为你的提交按钮需要一个点击处理程序,以便当客户端回发到服务器时 - 它知道更新数据库。有点像:
Sub btnUpdate_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
Dim cnAD As New System.Data.SqlClient.SqlConnection = yourdatasource.getConnection("SqlDataSourceClasses", cnAD)
Dim cmd As New SqlCommand
cmd.Connection = cnAd
cmd.CommandType.Text
cmd.CommandText = "update yourtable set yourval=@val where yourparams"
cmd.Paramaters.AddWithValue("@val", DropDownListClass.SelectedValue)
cmd.ExecuteNonQuery()
End Sub
你甚至可以添加一个try-catch来更好地了解你的代码出错的地方。请注意,我所写的内容不会按原样运作,但它旨在为您指明正确的方向。