2010-03-24 125 views
1

我正在尋找在等待提交響應回來時隱藏UpdatePanel的最簡單方法。 東西like described here - 使用Ajax控件工具包和UpdatePanelAnimationExtender既矯枉過正,造成一些問題,即:UpdateProgress中隱藏UpdatePanel

  • 因爲有在頁面夫婦隱藏面板的它變得亂七八糟,隱藏了錯誤的面板。我不知道爲什麼會發生這種情況。
  • 我找不到指定只有一個按鈕應該觸發動畫的方法。我在UpdatePanel中指定了一個,但它似乎被忽略,面板中的所有控件都會觸發動畫。

一個簡單的javascript解決方案將是理想的。這裏的問題是ASP.NET喜歡在運行時爲控件生成奇怪的ID。任何解決方案?

在此先感謝。

回答

0

我會建議使用jQuery。它會讓事情變得更容易。因此,以繞過「怪異ID」的問題,你可以做一些jQuery的是這樣的:

$('#<%= someASPControl.ClientID %>').hide(); 

,並顯示:

$('#<%= someASPControl.ClientID %>').show(); 

這是使用jQuery搶由ID的元素,然後就可以做你想做的事。訣竅是「.ClientID」將抓取.net發出的id。

0

您可以使用代碼標籤在HTML頁面中,並使用控制的ClientId屬性吐出ID asp.net生成:

$('#<%= elementName.ClientID %>').hide(); 

編輯:此示例使用jQuery的BTW

0

手柄PageRequestManager beginRequestendRequest事件回發期間控制的UpdatePanel的可見性:

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_beginRequest(
     function (sender, args) { 
      $get("<%=someUpdatePanel.ClientID %>").style.display = "none"; 
     } 
    ); 
    prm.add_endRequest(
     function (sender, args) { 
      $get("<%=someUpdatePanel.ClientID %>").style.display = ""; 
     } 
    ); 

另外補充DisplayAfter = 「0」 到assotiated UpdateProgress控件,以防止UpdatePanel中隱藏和的UpdateProgress之間的延遲示出

相關問題