0

我们正在尝试使用来自 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>
4

1 回答 1

1

埃马德乌登,

我认为您的提交按钮需要一个单击处理程序,以便当客户端回发到服务器时 - 它知道更新数据库。类似于以下内容:

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 来更好地了解你的代码哪里出错了。请注意,我所写的内容不会按原样工作,但它旨在为您指明正确的方向。

于 2012-12-13T17:49:04.043 回答