我是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();