2017-02-23 38 views
3

我目前正在開發一個使用ASP.NET和C#的網站。在這個網站中,我顯示了兩套圖像橫幅,第一套填充了我的C#代碼並保持不變(不會更改)。UpdatePanel觸發時不顯示圖像

<div class="divArticleCar"> 

    <div id="OwlDemo" class="owl-carousel owl-theme" style="padding:25px;" runat="server"> 
    </div> 

    <div class="customNavigation "> 
     <a class="btn prev "><span class="glyphicon glyphicon-menu-left"></span><br/></a> 
     <a class="btn next "><span class="glyphicon glyphicon-menu-right"></span><br/></a> 

    </div> 
</div> 

第二個使用從圖像數據庫連接到外部API。我有一個文本輸入和一個按鈕,因此當用戶搜索關鍵詞時,第二個橫幅會更新爲新圖像。我使用AJAX <asp:UpdatePanel>標記更新圖像結果。

<asp:UpdatePanel runat="server" id="UpdatePanel2" updatemode="Conditional"> 
    <Triggers> 
    <asp:AsyncPostBackTrigger controlid="btnSearchImage" EventName="ServerClick" /> 
    </Triggers> 
    <ContentTemplate> 
    <div class="divArticleCar"> 
     <div id="OwlDemo2" class="owl-carousel owl-theme" style="padding:25px;" runat="server"> 
     </div> 
    <div class="customNavigation CN2"> 
      <a class="btn prev2 "> 
       <span class="glyphicon glyphicon-menu-left"></span> <br> 
      </a> 
      <a class="btn next2 "> 
       <span class="glyphicon glyphicon-menu-right"></span> <br> 
      </a> 
     </div> 
    </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 

問題是何時更新ContentTemplate中的圖像。他們只是沒有顯示,橫幅消失。我檢查了我的後臺代碼,C#正在獲取API結果,並添加了新的圖像,但它們只是不可見。橫幅由2個Javascript文件管理。

第一:carrusel.js

二:owlCarousel.js

是否有人知道爲什麼圖像消失?

+0

無論你的特定堆棧如何,你仍然輸出'HTML' +'CSS' +'JS'。如果你可以提供你的問題的[mcve],我們可以告訴你什麼'CSS'規則或'JavaScript'函數確定你的元素的當前狀態,你可以跟蹤它的來源並修復它,或者,你可以執行更有力的規則以正確顯示您的元素。瀏覽器控制檯中的任何有趣內容? –

回答

0

當您使用UpdatePanel時,在頁面完成加載時調用的每個javascript函數都需要再次觸發。

因此,可以說,你有這樣的事情的地方建轉盤:

$(document).ready(function() { 
    buildCarousel(); 
}); 

您需要添加一些代碼,以確保buildCarousel()在部分回發後再次觸發。

var prm = Sys.WebForms.PageRequestManager.getInstance(); 

prm.add_endRequest(function() { 
    buildCarousel(); 
}); 
+0

這正是發生的情況,控制旋轉木馬的腳本未在回發中初始化。圖像在那裏,但「顯示」屬性設置爲NONE。謝謝 –