Asp.net

在 UpdatePanel 回發問題後呼叫 Javascript 函式

  • November 13, 2021

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

在頁面載入時載入我的內容時我沒有問題。但是,如果我嘗試執行搜尋以在 my 中更新我的 Javascript 數組文字UpdatePanel,我發現在 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

您可以創建一個簡單的 web 服務方法,該方法在需要時將 javascript 數組返回到頁面,並將對該 web 服務的呼叫包裝在 javascript 方法中。呼叫 javascript 方法在瀏覽器端刷新記憶體中的數組比期望在UpdatePanel回發時再次解析 js 數組文字並成功。

引用自:https://stackoverflow.com/questions/5412120