2010-05-23 59 views
1

我創建了一個自定義asp.net服務器控件。它在正常的asp.net頁面和瀏覽器內部的DOM對象上工作正常。但是我從來沒有使用過UpdatePanel,現在我正試圖確保這個控件在那裏工作。它沒有。如果我將控件添加到更新面板之外的頁面並單擊某個面板的內部按鈕(觸發器),則一切正常。但是,如果我將控件放置在更新面板內並再次單擊該按鈕,控件將從頁面完全消失。我仍然可以在javascript調試器和更新中看到我的控件,這意味着對象本身仍然在DOM中。它看起來像面板只是「隱藏」我的控制的外部div元素出於某種原因。我試圖在按鈕點擊處理程序上調用panel的Update()方法,將面板的UpdateMode設置爲Conditional和Always。所有結果都一樣。我該如何解決這個問題?謝謝!當UpdatePanel更新時,自定義服務器控件從頁面消失

+0

你能粘貼的aspx代碼 – 2010-05-23 18:28:28

回答

0

從另一臺計算機發布,以迴應TriLLi: 這是我的aspx代碼。同樣,UpdateMode可以是Conditional或Always - 結果相同,cc1:WebControl消失,但lblInfo標籤在那裏,在btnTest點擊後功能完全正常。

<form id="form1" runat="server"> 
<asp:scriptmanager ID="scrManager" runat="server"></asp:scriptmanager> 
<div> 
    <asp:updatepanel ID="pnlTest" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
         <div class="designer"> 
       <cc1:WebControl ID="ceFirst" runat="server" decisionxmlfilevirtualpath="/Person.config" autolist="User" help="Off"></cc1:WebControl> 
        </div> 
      <div class="designer"> 
       <asp:label ID="lblInfo" runat="server" forecolor="red"></asp:label> 
      </div> 
      <div class="designer"> 
       <asp:button ID="btnTest" runat="server" width="100" text="Test" /> 
      </div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnTest" EventName="Click" /> 
     </Triggers> 
    </asp:updatepanel> 
</div> 
</form> 
+0

我不敢肯定這一點,但如果你的控制使用JavaScript來顯示您需要的時候更新面板結束回調召回javascript代碼,嘗試在你的代碼後面加如果更新面板是在回調ScriptManager.RegisterStartupScript(... – 2010-05-23 19:53:00

+0

是的,我意識到這一點,做到這一點。我敢肯定,我錯過了這裏很簡單的東西。謝謝,雖然。 – Sasha 2010-05-23 20:49:56

+0

夥計們。其他任何人有建議,請? :) – Sasha 2010-05-23 23:19:43

相關問題