我使用JQuery创建了一个很好的工具提示框,我使用了一些插件,在所有浏览器中都能很好地工作。但问题开始时,我把我的组件在一个更新面板,我解释这显示一些代码:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:UpdateProgress ID="UpdateProgress0" runat="server">
<ProgressTemplate>
<div style="width: 100%;">
<p>
Please Wait, It is loading...
</p>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<table class="style1">
<tr>
<td align="center">
<asp:Button ID="btnUpBestSale" runat="server" OnClick="btnUpBestSale_Click" Text="▲" />
</td>
</tr>
<tr>
<td>
<div id="demo">
<uc6:GroupLoader ID="GroupLoader1" runat="server" GroupCode="37" ItemCount="5" ItemCountSkipness="0"
RepeatedColumns="1" TypeID="Vertical" />
</div>
<script>
$("#demo img[title]").tooltip({ offset: [30, 25] });
</script>
</td>
</tr>
<tr>
<td align="center">
<asp:Button ID="btnDownBestSale" runat="server" OnClick="btnDownBestSale_Click" Text="▼" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
更新面板是必要的,当我点击按钮和行数据绑定事件是在我的组加载器组件。
它在第一次工作,但在点击按钮,是在更新面板中的jquery事件再也不会上升。
如何解决这个问题?
试试下面的代码。它将确保在更新UpdatePanel中的所有内容之后执行脚本。(参考:http://msdn.microsoft.com/en-us/library/bb383810.aspx)
<script>
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
$("#demo img[title]").tooltip({ offset: [30, 25] });
});
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:UpdateProgress ID="UpdateProgress0" runat="server">
<ProgressTemplate>
<div style="width: 100%;">
<p>
Please Wait, It is loading...
</p>
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<table class="style1">
<tr>
<td align="center">
<asp:Button ID="btnUpBestSale" runat="server" OnClick="btnUpBestSale_Click" Text="▲" />
</td>
</tr>
<tr>
<td>
<div id="demo">
<uc6:GroupLoader ID="GroupLoader1" runat="server" GroupCode="37" ItemCount="5" ItemCountSkipness="0"
RepeatedColumns="1" TypeID="Vertical" />
</div>
</td>
</tr>
<tr>
<td align="center">
<asp:Button ID="btnDownBestSale" runat="server" OnClick="btnDownBestSale_Click" Text="▼" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
jquery不能在更新面板异步回发后工作。所以你需要使用endrequesthandler,下面是如何做到这一点。http://codethatworkedforme.blogspot.com/2011/08/having-issues-with-update-panel.html