C# ASP.NET2012 JQuery和更新面板不工作:一个绑定的列表框,并使用JQuery将结果填充到另一个列表框中
我的列表框在UpdatePanel中。我使用此代码将数据从绑定的列表框传输到空的列表框,以获得结果。我正在使用下拉列表填充绑定列表框的结果。我在这里做错了什么:C# ASP.NET2012 JQuery和更新面板不工作:一个绑定的列表框,并使用JQuery将结果填充到另一个列表框中,c#,jquery,asp.net,listbox,asp.net-ajax,C#,Jquery,Asp.net,Listbox,Asp.net Ajax,我的列表框在UpdatePanel中。我使用此代码将数据从绑定的列表框传输到空的列表框,以获得结果。我正在使用下拉列表填充绑定列表框的结果。我在这里做错了什么: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> $(fu
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("#lstright").bind("click", function lstRight() {
var options = $("[id*=lstListTenants1] option:selected");
for (var i = 0; i < options.length; i++) {
var opt = $(options[i]).clone();
$(options[i]).clone();
$("[id*=lstListTenants2]").append(opt);
}
});
$("#lstleft").bind("click", function lstLeft() {
var options = $("[id*=lstListTenants2] option:selected");
for (var i = 0; i < options.length; i++) {
var opt = $(options[i]).clone();
$(options[i]).remove();
//$("[id*=lstEmailAddress]").append(opt);
}
});
});
var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function (s, e) {
$(function () {
$("#lstright").bind("click", function lstRight() {
var options = $("[id*=lstListTenants1] option:selected");
for (var i = 0; i < options.length; i++) {
var opt = $(options[i]).clone();
$(options[i]).clone();
$("[id*=lstListTenants2]").append(opt);
}
});
$("#lstleft").bind("click", function lstLeft() {
var options = $("[id*=lstListTenants2] option:selected");
for (var i = 0; i < options.length; i++) {
var opt = $(options[i]).clone();
$(options[i]).remove();
//$("[id*=lstEmailAddress]").append(opt);
}
});
});
});
</script>
我如何让jquery与我的UpdatePanel一起工作,使其正常工作
这是我的aspx代码:
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table>
<tr>
<td class="h4" colspan="2">
<asp:Label ID="Label1" runat="server" Text="Name and Address of Property Where Incident Occurred:"></asp:Label>
</td>
</tr>
<tr>
<td class="h4">
<asp:Label ID="lblPropName" runat="server" Text="Name:"></asp:Label>
</td>
<td>
<asp:DropDownList ID="ddlPropName" runat="server" OnSelectedIndexChanged="ddlPropName_SelectedIndexChanged" AutoPostBack="True" Height="30px"></asp:DropDownList>
</td>
</tr>
<tr>
<td class="h4">
<asp:Label ID="Label2" runat="server" Text="BU Number:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtBUNum" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="h4">
<asp:Label ID="Label3" runat="server" Text="Address1:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtAddress1" runat="server"></asp:TextBox>
</tr>
<tr>
<td class="h4">
<asp:Label ID="Label4" runat="server" Text="Address2:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtAddress2" runat="server"></asp:TextBox>
</td>
</tr>
</table>
<table>
<tr>
<td class="h4">
<asp:Label ID="lblListTenants" runat="server" Text="List of Affected Tenants:"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:ListBox ID="lstListTenants1" runat="server" Height="100px" Width="288px" SelectionMode="Multiple"></asp:ListBox>
</td>
<td>
<input id="lstLeft" type="button" value="<<" />
<input id="lstRight" type="button" value=">>" />
<%--<asp:Button ID="btnLeft" runat="server" Text="<<" OnClick="btnLeft_Click" />
<asp:Button ID="btnRight" runat="server" Text=">>" OnClick="btnRight_Click" />--%>
</td>
<td>
<asp:ListBox ID="lstListTenants2" runat="server" Height="100px" Width="288px" SelectionMode="Multiple"></asp:ListBox>
</td>
</tr>
</table>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlPropName" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
对于UpdatePanel,由于它们执行部分回发,jquery在部分回发后会松开其绑定。在这种情况下,需要在回发后重新绑定jquery函数 var prm=Sys.WebForms.PageRequestManager.getInstance; prm.add_endrequests函数,e{ //在这里调用你的函数
}; 什么不起作用?你得到了什么结果?什么都没发生。我尝试用一个简单的按钮将结果添加到另一个列表框中,但什么也没发生。没有任何内容带到另一个列表框。回发后如何重新绑定jquery函数?我不知道该怎么做。这就是我面临的问题。我只是不知道怎么做。仍然不知道把var prm放在哪里。我应该把代码放在哪里?我已经尝试了几乎所有的方法,我想我可能只是把代码放错了地方。你能告诉我上面的代码放在哪里,这样它就知道回发后要重新绑定吗?在脚本块中你有你的主代码。在你的代码之后添加var prm,并在里面添加你的主代码。你能给我看一下代码吗?对不起,我对你的逻辑一无所知。var prm=Sys.WebForms.PageRequestManager.getInstance;prm.add_endrequests函数,e{///再次添加您的逻辑};