簡體   English   中英

在 Asp.Net AJAX 的嵌套 UpdatePanel 中區分 AsyncPostbacks

[英]Making a difference between AsyncPostbacks in nested UpdatePanels in Asp.Net AJAX

在 ASP.net AJAX 項目 (WebForms) 中,我有一個 UpdatePanel,在 UpdatePanel 中,我有多個帶有 UpdatePanel 的嵌套控件,基本上我有控件樹。

家長控制是網站的一個巨大且非常重要的部分。 我無法觸摸它(而且它在很多地方都被重復使用),UpdatePanel 應該保持在當前位置。

更新面板中的子控件具有彼此分離的功能(它們也與 UpdatePanel 分離),以便能夠僅刷新控件的一部分。

基本上在 Page_Load() 上,我有代碼用數據來滿足每個子控件,例如,如果我有一個正在修改子控件數據的刪除功能。 步驟是這樣的:

首先顯示控件(ParentControl)。

  • Page_Load() -> 填充數據

如果我點擊刪除:

  • Page_Load() -> fullfill data /* 不想在這里調用它! */

  • 事件刪除->修改數據

     ->fullfill data again!

我需要在AsyncPostbacks上進行編程差異,並在 Page_Load() 函數上使用以在您只想執行事件時不調用 fulfill 數據。

在 UpdatePanel 之外,您可以使用IsAsyncPostbackIsCallBackIsPostback我肯定知道這一點,但這些屬性在 AsyncPostback 上不會改變

我有 2 個 AsycPostbacks,我需要區分它們。:

  1. 首先,這只是顯示數據和初始化。
  2. 執行事件並修改控件

有人知道一種實現技術或某種具有此類功能的框架嗎?

有人有這個問題嗎?

我已經刪除了我的另一個答案 - 看到你現在描述的是一個與最初的問題完全不同的問題,完全替換我的答案似乎是愚蠢的,同時保留以前版本的代表。

您將不得不檢查導致異步回調的事件,或者檢查每個更新面板中控件的某些值,以幫助您確定更改的內容。

這是我決定不使用更新面板的關鍵原因之一,異步回發導致幾乎所有頁面生命周期事件發生,並且很難真正看到在這種復雜情況下發生了什么 -只有一次我憤怒地使用更新面板是在我的個人網站上環繞數據網格以在處理大量數據時保存整個頁面重新加載。


編輯添加:

只是想幫忙,一個快速的谷歌出現了這個(AJAX 和 ASP.NET 2.0 回調框架)

哪個控件發起了請求?

在回發請求中,ScriptManager id 作為參數運行。 通常,該值是發起部分回發的控件的 id。 它的格式是|。 控件可以直接或通過 UpdatePanel 向 ScriptManager 注冊。 ScriptManager.AsyncPostBackSourceElementID 屬性將返回啟動部分回發的控件的 ID。

示例語法:

ScriptManager1=UpdatePanel1|Button1

該頁面還詳細介紹了生命周期以及流程中的各種掛鈎。

暫無
暫無

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

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