0

好吧,这个问题似乎有点令人困惑。

一方面,我有一个Update Panel. 在这里面Update Panel我有一个Modal Popup Extender,这个弹出窗口的内容是一个Web User Control

在我的User Control我试图包括一个画廊滑块(http://bxslider.com/),它必须简单地用 JavaScript 行初始化:

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

, 其中.bxslider是定义画廊幻灯片的容器的类。

浏览网页,当我单击启动弹出窗口的控件时,它会出现画廊控件(上一个,下一个,以及带有多个圆圈的页脚栏,代表画廊的每张幻灯片),但我不是能够看到画廊本身的内容。

现在,如果我访问 Chrome 控制台,就会神奇地呈现画廊。

我试图将初始化放在几个地方:

  1. Web User Control标记文件的开头。

  2. Web User Control标记文件中,最后。

  3. Web User Control Load事件中:

    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 Control LoadComplete事件中(通过事件绑定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 Extender OnLoad事件中。

我完全迷路了。有任何想法吗?

编辑Modal Popup Extender:我认为这里的正确问题是:有没有办法建立一个只在显示而不是在加载时引发的方法?

4

2 回答 2

0

新的方法!

取而代之的是前一个,每次打开弹出窗口时重新定义滑块(导致其他问题),我直接在以下位置初始化滑块User Web Control

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

然后启动弹出窗口的控件为:

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

即,我现在正在使用一种每次都重新加载图库的方法。

于 2013-10-30T14:24:55.453 回答
0

嗯,终于解决了。

解决方案是将TargetControlIDmodalpopup 分配给一个虚拟按钮,然后将我真正想要打开弹出窗口的控件声明为:

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

这以“肮脏”的方式解决了问题,因此,如果有人有其他建议,我们将非常欢迎。

于 2013-10-30T13:39:57.347 回答