列表框OnSelectedIndexChanged不起作用
本文关键字:不起作用 OnSelectedIndexChanged 列表 | 更新日期: 2023-09-27 18:08:49
在jquery对话框中有一个列表框
<div id="dialog">
<asp:UpdatePanel ID="updatePanel1" runat="server">
<ContentTemplate>
<asp:ListBox ID="lbxTitle" runat="server" style="width:400px;height:100px;" OnSelectedIndexChanged="lbxTitle_SelectedIndexChanged">
<asp:ListItem value="2" Text="abc" />
<asp:ListItem value="3" Text="def" />
</asp:ListBox>
<br />
<fieldset>
<asp:Label ID="lblContent" runat="server" style="height:200px;" />
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
</div>
在后面的代码中,我有这个函数
protected void lbxTitle_SelectedIndexChanged(object sender, EventArgs e)
{
lblContent.Text = "test";
}
我没有把autopostback="true",因为它会刷新整个页面,并关闭我的对话框。
如何使当用户点击列表框上的项目时,对话框内的标签上会显示"test"
现在,它不做任何事情,如果我改变所选择的项目
你应该把Autopostback,然后你可以使用AsyncPostBack来防止整个页面回发…
根据以下规则
<asp:UpdatePanel ID="updatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:ListBox ID="lbxTitle" runat="server" style="width:400px;height:100px;" OnSelectedIndexChanged="lbxTitle_SelectedIndexChanged" AutoPostBack="true">
<asp:ListItem value="2" Text="abc" />
<asp:ListItem value="3" Text="def" />
</asp:ListBox>
<br />
<fieldset><asp:Label ID="lblContent" runat="server" style="height:200px;" />
</fieldset>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lbxTitle" />
</Triggers>
</asp:UpdatePanel>
添加AutoPostback,并在创建对话框后将其移回表单:
$("#dialog").parent().appendTo($("form:first"));
试试这个:
<script type="text/javascript">
$(function() {
<% if (Page.IsPostback) { %>
$('id of your listbox').change();
<% } %>
});
</script>