2011-02-23 63 views
2

我有兩個更新面板如下(點擊時的LinkBut​​ton是我想要強調的div)jQuery的效果亮點在asp.net更新面板不工作

<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) 

這突出了股利後回傳,但超時值不工作也繼續顯示高亮顏色,不改回來。

什麼可能導致這不起作用?

回答

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函數內相同的代碼,如果你希望它能夠後運行發回。

+0

這個工作,但之後的亮點依然存在 – 2011-02-24 14:50:30

+0

@rs不會變回原來的顏色問題,突出DIV的「endrequesthandler'之外,並在它的內部,並且還使用'延遲()'改變它回到'endrequesthandler'內。所以基本上,當你點擊linkbutton你hightlight div,然後你回發並再次點亮它(因爲更新面板正在銷燬並重建頁面),然後延遲'3000'並最終刪除高亮。 – 2011-02-24 17:15:58

0

你可以使用ASP.Net阿賈克斯的頁面加載()方法來調用你的高亮的邏輯,像這樣:

<script type="text/javascript"> 
function pageLoad(){ 
    $('#shdr').effect('highlight', {}, 3000); 
}; 
</script> 

這會自動在每一個局部回調,以及定期回調被調用。

+0

謝謝,我已經試過這並沒有爲我工作.. – 2011-02-24 14:56:04

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> 
+0

謝謝,但已經試過這沒有工作,它甚至沒有突出div – 2011-02-24 14:56:40