0

嗯,這個問題似乎有點混亂。更新面板中Modal Popup Extender中的Web用戶控件中的jQuery問題

一方面我有一個Update Panel。在這個Update Panel裏面我有一個Modal Popup Extender,這個彈出窗口的內容是Web User Control

在我User Control我想包括畫廊滑塊(http://bxslider.com/)必須簡單地使用JavaScript線進行初始化:

$(document).ready(function() { 
    $('.bxslider').bxSlider(); 
} 

,其中.bxslider是類的容器,其中畫廊幻燈片被定義。

瀏覽網頁時,當我點擊啓動彈出窗口的控件時,它會顯示圖庫控件(prev,next和具有多個表示圖庫中每個幻燈片的圓圈的頁腳欄),但我無法看到畫廊本身的內容。

現在,如果我訪問Chrome控制檯,神奇地呈現畫廊。

我試圖把初始化的幾個地方:

  1. Web User Control標記文件,開頭。

  2. Web User Control標記文件末尾。

  3. Web User ControlLoad事件:

    protected void Page_Load(object sender, EventArgs e) { 
        String script = "$(document).ready(function() { $('.bxslider').bxSlider(); }"; 
        ScriptManager.RegisterStartupScript((Control)this.Page, this.Page.GetType(), new Guid().ToString(), script, true); 
    } 
    
  4. Web User ControlLoadComplete事件(通過Init事件綁定):

    protected void Page_Init(object sender, EventArgs e) { 
        this.Page.LoadComplete += new EventHandler(Page_LoadComplete); 
    } 
    
    protected void Page_LoadComplete(object sender, EventArgs e) { 
        String script = "$(document).ready(function() { $('.bxslider').bxSlider(); }"; 
        ScriptManager.RegisterStartupScript((Control)this.Page, this.Page.GetType(), new Guid().ToString(), script, true); 
    } 
    
  5. Modal Popup ExtenderOnLoad事件。

我完全失去了。有任何想法嗎?

編輯:我覺得這裏的正確的問題是:有沒有辦法囑咐只有當顯示Modal Popup Extender這就提出了一個方法,而不是當它的加載?

回答

0

新方法!

而不是以前的一個,每一個彈出窗口打開時重新定義滑塊(導致其他問題),我在User Web Control直接初始化滑塊:

<script type="text/javascript"> 
    var slider; 
    $(document).ready(function() { 
    slider = $('.bxslider').bxSlider(); 
</script> 

然後控制該launchs彈出站作爲:

<asp:Button id="Button1" runat="server" OnClientClick="$find('PopupBehaivourID').show(); slider.reloadSlider(); return false;" Text="Show me!" /> 

即,我現在使用的方法,每次重新加載畫廊。

0

好了,終於解決了。

,解決方案一直到modalpopup的TargetControlID分配給虛擬按鈕,然後宣佈控制我真想打開彈出式爲:

<asp:Button id="Button1" runat="server" OnClientClick="$find('PopupBehaivourID').show(); setTimeout(function() { $('.bxslider').bxSlider(); }, 100); return false;" Text="Show me!" /> 

這解決了「髒」的方式問題所以,如果任何人有其他建議將是相當受歡迎。

相關問題