Asp.net-UpdatePanel非同步重新整理後JS失效的解決方法
阿新 • • 發佈:2019-01-22
UpdatePanel非同步重新整理要用到的幾個控制元件:
1.ScriptManager
2.UpdatePanel
3.UpdateProgress
使用以上幾個控制元件實現非同步重新整理:
<form id="form1" runat="server">
<!--使用ScriptManger生成非同步指令碼-->
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<!--使用UpdateProgress顯示非同步重新整理的等待效果-->
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="up3NetSort">
<ProgressTemplate>
<div class="cls_process">
<div class="cls_processing">
</div>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<!--使用UpdatePanel執行非同步重新整理-->
<asp:UpdatePanel ID="up3NetSort" runat="server" UpdateMode="Always">
<!--UpdatePanel執行非同步重新整理的內容-->
<ContentTemplate>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="tbMain">
<tr>
<td height="30px">
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="height: 30px">
<tr>
<td background="images/tab_05.gif" style="width: 15%">
<img src="images/311.gif" width="16" height="16" />
</td> <td background="images/tab_05.gif" style="width: 75%"> <table border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="padding-left: 50px">
<div style="height: 20px; border: 1px solid #AACFE9; font-size: 12px; color: #294F76; padding-top: 3px; font-weight: normal">
地理維度:
<asp:RadioButtonList ID="PMTypeList" runat="server" AutoPostBack="True"
RepeatDirection="Horizontal" RepeatLayout="Flow"
OnSelectedIndexChanged="PMTypeList_SelectedIndexChanged"> <asp:ListItem Value="1" Selected="True">網格</asp:ListItem> <asp:ListItem Value="5">片區</asp:ListItem> <asp:ListItem Value="2">地市</asp:ListItem> </asp:RadioButtonList>
指標型別:
<asp:RadioButtonList ID="IndicatorsList" runat="server" AutoPostBack="True"
RepeatDirection="Horizontal" RepeatLayout="Flow"
OnSelectedIndexChanged="IndicatorsList_SelectedIndexChanged"> </asp:RadioButtonList>
</div>
</tr>
</table>
</td>
<td background="images/tab_05.gif">
</td>
<td width="14">
<img src="images/tab_07.gif" width="14" height="30" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</form>
解決非同步重新整理後js失效的2種方法:
1.後臺重新註冊JS方法
ScriptManager.RegisterStartupScript(Page, typeof(string), "Sort", "Fun_Sort();", true);
Fun_Sort()為要前臺重新註冊的js方法。
2.使用Sys.WebForms.PageRequestManager 類重新註冊方法
前臺使用Sys.WebForms.PageRequestManager 類:
function EndRequestHandler()
{
//重新整理之後要執行的js
}
function reload()
{
//非同步重新整理後要執行的動作 Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}
//在jquery的ready()中註冊方法$(document).ready(
function()
{
reload();
}
)