The problem in your code is that prmInstance
variable and initializerRegion
function declared in global execution context. So the last control overrides initializerRegion
function definition. To fix this you may wrap all your code in self called function like below:
(function () {
var prmInstance = Sys.WebForms.PageRequestManager.getInstance();
prmInstance.add_endRequest(function () {
//you need to re-bind your jquery events here
initializerRegion();
});
var initializerRegion = function () {
$('#<%= autoRegion.ClientID %>').autocomplete({
source: function (request, response) {
//......
},
//......
});
$(function () {
initializerRegion();
});
})();
This code works well for me:
ascx:
<script type="text/javascript">
(function () {
var prmInstance = Sys.WebForms.PageRequestManager.getInstance();
prmInstance.add_endRequest(function () {
initialize();
});
var initialize = function () {
$("#<%= TextBox1.ClientID %>").on("keyup", function () {
alert(this.value);
});
};
$(function () {
initialize();
});
})();
</script>
<asp:TextBox runat="server" ID="TextBox1" />
aspx:
<asp:ScriptManager runat="server" />
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<uc:WebUserControl2 runat="server" ID="ucWebUserControl2" />
<asp:Button Text="Click Me" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<hr />
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<uc:WebUserControl2 runat="server" ID="WebUserControl1" />
<asp:Button Text="Click Me" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>