2009-09-15 39 views
0

在一個ASP.net AJAX項目(WebForms)中,我有一個UpdatePanel,並且在UpdatePanel中我有多個嵌套控件和UpdatePanels,基本上我有控制樹。 家長控制是巨大的,非常重要的部分,我無法觸及它的網站(也在很多地方重複使用),UpdatePanel應該保持在當前位置。在Asp.Net中嵌套的UpdatePanels中的AsyncPostbacks之間的區別AJAX

更新面板中的子控件具有彼此分開的功能(也可以使用UpdatePanel分隔),以便能夠從控件中只刷新一塊。
基本上上的Page_Load()我有代碼至極fullfill與數據每一個孩子控制,例如,如果我有一個刪除功能至極被修改子控件data.The步驟是這樣的:

首先示出了控制(ParentControl )。

  • 的Page_Load() - > Fullfill數據

如果我上刪除點擊:

  • 的Page_Load() - > fullfill數據   /*不想做調用此這裏! */

  • 事件刪除 - >修改數據

     ->fullfill data again! 
    

我需要在AsyncPostbacks一個programatical差異,並在的Page_Load()函數中使用你的時候不調用fullfill數據只想執行一個事件。

外的UpdatePanel可以使用IsAsyncPostbackIsCallBack的IsPostBack我知道這是肯定的,但這些propertys不要AsyncPostback改變。

我有2個AsycPostbacks,我需要區分它們。
1.首先這只是顯示數據和初始化。
2.執行一個事件並對控件進行修改

有人知道一種技術來實現,或者某種框架有這種類型的功能嗎?

有沒有人有這個問題? :(

回答

1

我已經刪除了我的其他答案 - 看到你現在正在描述一個完全不同的問題到最初的一個,並且它完全取代了我的答案似乎是愚蠢的,同時保留了以前版本的代表

您將不得不檢查導致異步回調的事件,或者檢查每個更新面板中控件的某些值,以幫助您確定發生了什麼變化。

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


編輯補充:

只是想幫忙,快速谷歌打開了this (AJAX and the ASP.NET 2.0 Callback Framework)

它控制發起請求?

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

示例語法:

ScriptManager1=UpdatePanel1|Button1 

該網頁也進入有關的生命週期,以及各種掛鉤插入過程中的一些細節。

+0

確實工作得非常好,ScriptManager.AsyncPostBackSourceElementID屬性返回一個UniqueID,並且您可以使用FindControl來從異步觸發的觸發位置中找出答案。感謝解決方案! – 2009-09-16 07:13:10

+1

Huzzah!樂意效勞。 – 2009-09-16 07:30:36

相關問題