使用jQuery对话框从LatpdownList获取所选值



我是ASP.NET中的此jQuery对话框的新手。我正在尝试从jQuery Dialog中打开的dropdownlist获取所选值。第一个用户将单击一个按钮,将显示对话框。在对话框中,用户将在下拉列表中选择项目,当用户单击"确定"时,更新查询将基于下拉列表中所选值执行。问题是,当用户单击确定时,我的表没有更改。这是我拥有的代码。预先感谢

<script type="text/javascript">
    function ShowPopup(message) {
        $(function () {
            $("#dialog").dialog({
                modal: true,
                buttons: {
                    Ok: function () {
                        $("[id*=btnOKStatus]").click();
                    },
                    Close: function () {
                        $(this).dialog('close');
                    }
                }
            });
        });
    };
</script>
xml
   <asp:ImageButton ID="btnUpdateStatus" runat="server"
    ImageUrl="~/images/btnUpdateStatus.png" Height="40px" Width="50px" 
    Style="vertical-align: middle;" BorderStyle="None" OnClick="btnShowPopup_Click" />``
 <div id="dialog" style="display: none">
<asp:Label ID="lblDialog" runat="server" Text="Sila pilih status: "></asp:Label><br /><asp:DropDownList
    ID="ddlStatus" runat="server">
    <asp:ListItem>New</asp:ListItem>
    <asp:ListItem>Pending</asp:ListItem>
    <asp:ListItem>Complete</asp:ListItem>    </asp:DropDownList>
    </div>
       <asp:Button ID="btnOKStatus" runat="server" Text="Button" style =                        
      "display:none" OnClick = "btnOKStatus_Click" />

vb

Protected Sub btnShowPopup_Click(sender As Object, e As System.EventArgs) Handles btnUpdateStatus.Click
    Dim message As String = ""
    ClientScript.RegisterStartupScript(Me.GetType(), "Popup", "ShowPopup('" + message + "');", True)
End Sub
Protected Sub btnOKStatus_Click(sender As Object, e As EventArgs)
    Using mysqlConnection = New MySqlConnection(connStr)
        mysqlConnection.Open()
        queryStr = "UPDATE `order` SET status=@status WHERE ID=@orderID"
        cmd = New MySqlCommand(queryStr, mysqlConnection)
        cmd.Parameters.AddWithValue("@orderID", Page.Request.QueryString("orderID").ToString())
        cmd.Parameters.AddWithValue("@status", ddlStatus.SelectedValue)
        Dim num As Integer = cmd.ExecuteNonQuery()
        If num > 0 Then
            ClientScript.RegisterStartupScript(Page.[GetType](), "key", "alert('Success!')", True)
        Else
            ClientScript.RegisterStartupScript(Page.[GetType](), "key", "alert('Fail')", True)
        End If
        mysqlConnection.Close()
    End Using
End Sub

以下选择器将返回选定的值。

$('#ddlStatus > li:selected').val()

但是,这似乎更像是一个ASP.NET问题。如果要在vb.net代码中获取下拉列表的选定值,则可以将ID用于下拉列表,并在vb.net代码中访问下拉列表,

ddlStatus.SelectedValue

尝试更改此

Protected Sub btnOKStatus_Click(sender As Object, e As EventArgs)
    Using mysqlConnection = New MySqlConnection(connStr)
        mysqlConnection.Open()
        queryStr = "UPDATE `order` SET status=@status WHERE ID=@orderID"
        cmd = New MySqlCommand(queryStr, mysqlConnection)
        cmd.Parameters.AddWithValue("@orderID", Page.Request.QueryString("orderID").ToString())
        cmd.Parameters.AddWithValue("@status", ddlStatus.SelectedValue)
        Dim num As Integer = cmd.ExecuteNonQuery()
        If num > 0 Then
            ClientScript.RegisterStartupScript(Page.[GetType](), "key", "alert('Success!')", True)
        Else
            ClientScript.RegisterStartupScript(Page.[GetType](), "key", "alert('Fail')", True)
        End If
        mysqlConnection.Close()
    End Using
End Sub

Protected Sub btnOKStatus_Click(sender As Object, e As EventArgs)
    If Page.IsPostBack = False Then
    Using mysqlConnection = New MySqlConnection(connStr)
        mysqlConnection.Open()
        queryStr = "UPDATE `order` SET status=@status WHERE ID=@orderID"
        cmd = New MySqlCommand(queryStr, mysqlConnection)
        cmd.Parameters.AddWithValue("@orderID", Page.Request.QueryString("orderID").ToString())
        cmd.Parameters.AddWithValue("@status", ddlStatus.SelectedValue)
        Dim num As Integer = cmd.ExecuteNonQuery()
        If num > 0 Then
            ClientScript.RegisterStartupScript(Page.[GetType](), "key", "alert('Success!')", True)
        Else
            ClientScript.RegisterStartupScript(Page.[GetType](), "key", "alert('Fail')", True)
        End If
        mysqlConnection.Close()
    End Using
    End If
End Sub

为时已晚,但是我正在为那些面临类似问题的人发布答案(如问题的标题中所述)(对于那些不使用ASP.NET的人)
var selectedItemText = $("#myselect option:selected" ).text(); var selectedItemCode = $("#myselect option:selected" ).val();

最新更新