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!" /> 

这解决了“脏”的方式问题所以,如果任何人有其他建议将是相当受欢迎。

相关问题