2009-05-04 98 views
0

我在用戶控件中使用AJAX.Net(3.5)。 usercontrol包含一個UpdatePanel,並且UpdatePanel內有一個MultiView。 ScriptManager作爲用戶控件的容器充當頁面。AJAX.Net - UpdatePanel不會刪除舊內容

要在視圖之間切換,usercontrol包含一個簡單的按鈕。 當我點擊它時,視圖被更改,舊的內容被隱藏並顯示新的內容。 我的問題是內容根本不隱藏。 視圖更改並顯示新內容,但舊內容仍保留在頁面上。 爲了找出問題,我嘗試改變多視圖並切換一個簡單標籤的可見性,但行爲是一樣的。 任何想法?

+0

你用什麼方法切換可視性? – Daniel 2009-05-04 14:11:12

回答

0

看來,如果你有一部分AJAX.Net不能很好地工作UpdatePanel外部的表。

在我的控制上,我想顯示或隱藏表格的某些行。我在updatepanel內只包含了trtd標籤。

要重現該問題:

<table> 
<asp:UpdatePanel ID="UpdatePanel" runat="server"> 
    <ContentTemplate> 
     <tr> 
      <td> 
       <asp:Label ID="lblToShow" runat="server" Text="Label to show" Visible="false" /> 
       <br /> 
       <asp:Label ID="lblToHide" runat="server" Text="Label to hide" /> 
      </td> 
     </tr> 
    </ContentTemplate> 
</asp:UpdatePanel> 
</table> 

如果更改使用可視性:

lblToShow.Visible = true; 
lblToHide.Visible = false; 

兩個標籤的文本顯示在頁面上(lblToHide不隱藏)

如果你移動標籤裏面 UpdatePanel一切工作正常。

+0

UpdatePanel不會向瀏覽器呈現div嗎?如果是這樣,那可能會解釋你所看到的問題。 – 2009-05-04 20:39:59

0

呼叫

updatepanel.Update() 

您做出更改您的UpdatePanel後

,或者嘗試

updatepanel.Controls.Clear(); 
+0

updatepanel.Update();並不能解決問題。 updatepanel.Controls.Clear();在顯示新內容之前刪除新內容,但舊內容保留在原來的位置(頁面不變) – nicoruy 2009-05-04 14:21:16

+0

您可以在此處提供源代碼 – DaDa 2009-05-04 14:58:47

1

哦,我明白了。那好吧。問題不在這裏的Ajax。這只是你不能嵌入<table>標籤中的東西。在這種情況下,您可以嘗試一些與<table>控件不同的東西。也許<div>或別的東西。我不知道你有什麼樣的情況。也許你解釋你想達到的結果,所以我可以給你一些建議。

Regards