簡體   English   中英

UpdatePanel回發問題后調用Javascript函數

[英]Call a Javascript Function after UpdatePanel Postback Issue

我基本上在我的UpdatePanel中有一個文字,它根據我的代碼隱藏中的方法生成一個javascript數組。

在頁面加載時加載我的內容時沒有問題。 但是,如果我嘗試在我的updatepanel中執行搜索更新我的javascript數組文字,我發現在javascript已經觸發后,文字會在回發時更新。

這是我所擁有的基本示例:

<script type="text\javascript">
function BindMyFunction(itemList)
{
    //Do something
}
</script>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>  
<!-- Literal containing generated JS array -->
    <asp:Literal ID="ProfileJavscriptOutput" runat="server"></asp:Literal> 
    <ul id="person-search">
    <li><asp:TextBox ID="TxtFirstname" runat="server" Text=""></asp:TextBox></li>
    <!-- Update Literal onClick -->
        <li><asp:ImageButton CssClass="searchbtn" ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" /></li>
    </ul>    
    <!-- Some jCarousel rendered -->
</asp:UpdatePanel>

我一直在看以下帖子:

ASP.NET - UpdatePanel和JavaScript

在updatepanel回發后調用javascript

但我似乎無法正確地將它應用於我的代碼。

當我不使用UpdatePanel時,它工作正常。 但這是一項要求,以便在執行搜索時頁面位置不會移動。

您可以在Page_Load事件中添加以下代碼:

ScriptManager.RegisterStartupScript(Me.rptGridAlbum, rptGridAlbum.GetType, "scriptname", "somejavascript", True)

這將在AJAX回調后觸發頁面上的javascript。

MSDN

var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm != null) {
    prm.add_endRequest(function (sender, e) {
        if (sender._postBackSettings.panelsToUpdate != null) {
            DisplayCurrentTime(); // here your javascript function
        }
    });
};

您可以創建一個簡單的Web服務方法,在需要時將javascript數組返回到頁面,並以javascript方法將調用包裝到該Web服務。 調用javascript方法在瀏覽器端刷新內存中的數組將比預期在UpdatePanel回發上再次解析js數組文字更有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM