我有两个更新面板如下(当点击链接按钮时,我试图突出显示div)
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Linkbutton id="btnChange" runat="server" OnCommand="LinkButton_Command"/>
<asp:Linkbutton id="btnChange2" runat="server" OnCommand="LinkButton_Command"/>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div id="shdr">Hello there!</div>
</ContentTemplate>
</asp:UpdatePanel>
我正在覆盖OnLoadComplete并在页面上注册此脚本,如下所示
ScriptManager.RegisterClientScriptBlock(Me, Me.GetType(), "divHigh", "$('#shdr').effect('highlight', {}, 3000);", True)
这会在回发后突出显示div,但超时值不起作用,它会继续显示突出显示的颜色并且不会改回。
导致这种情况不起作用的原因是什么?
答案 0 :(得分:2)
如果您使用的是UpdatePanel,即Script Manager
$(function () {
//Code that runs before update panel is fired.
//Listen for update panel
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
//Re-initialize jquery after an auto post back.
function EndRequestHandler(sender, args) {
//Do work after update panel fires.
}
});
基本上,如果你希望它能够在回发后运行,你将拥有你的jQuery代码,然后是EndRequestHandler
函数中的相同代码。
答案 1 :(得分:0)
您可以使用ASP.Net Ajax的pageLoad()方法来调用高亮显示逻辑,如下所示:
<script type="text/javascript">
function pageLoad(){
$('#shdr').effect('highlight', {}, 3000);
};
</script>
每次部分回调以及常规回调都会自动调用。
答案 2 :(得分:0)
如果您希望在每次面板刷新时运行一些javascript,您可以将以下脚本添加到您的页面。这将注册一个javascript函数,以便在UpdatePanel
刷新时运行。
<script type="text/javascript">
function NameOfJavascriptFunctionYouWantToRunHere()
{
$('#shdr').effect('highlight', {}, 3000);
};
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_pageLoaded(NameOfJavascriptFunctionYouWantToRunHere);
</script>