【问题标题】:How do I have multiple close buttons with a CollapsiblePanelExtender?如何使用 CollapsiblePanelExtender 设置多个关闭按钮?
【发布时间】:2009-04-13 15:05:52
【问题描述】:

我的页面上有一个 asp.net ajax CollapsiblePanelExtender 控件。这个控件的设计方式,你可以指定一个控件打开面板,另一个控件关闭它:

<ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server"
  TargetControlID="panelStuff"
  ExpandControlID="butToggle" CollapseControlID="butToggle" Collapsed="True"
  SuppressPostBack="true" />

如果 ExpandControlID 和 CollapseControlID 相同(如本例所示),则控件会切换面板的打开和关闭。

但我想要的是另一个允许用户关闭此面板的控件(在 panelStuff 内)。理想情况下,我想指定:

CollapseControlID="butToggle,butClose"

任何想法如何做到这一点?

【问题讨论】:

    标签: asp.net asp.net-ajax collapsiblepanelextender


    【解决方案1】:

    实现此目的的一种方法:

    为 CollapsiblePanelExtender 分配一个 BehaviorID:

    <ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server" 
      BehaviorID="cpeForBehavior"
      TargetControlID="panelStuff"
      ExpandControlID="butToggle" CollapseControlID="butToggle" Collapsed="True"
      SuppressPostBack="true" />
    

    创建 javascript 函数以执行所需的行为:

    function closeCpe() {
        $find("cpeForBehavior")._doClose();
    }
    

    在事件处理程序中执行函数:

    <input type="button" id="MyOtherButton" onclick="closeCpe();" />
    

    【讨论】:

    • 你在哪里找到 _doClose() ?这些命令是否有文档?如果我想扩大而不是崩溃怎么办?我猜 doOpen() 会起作用,但如果我不知道该怎么办。
    • adinas:我不得不承认,我不知道你会去哪里找到文档。这些可能是扩展器的未记录的底层支持功能。也就是说,您也可以使用 _doOpen() 和 _doToggle()。
    【解决方案2】:

    与上面的答案相同,但我正在寻找一个切换。 _doToggle() 不起作用,仅供参考:

     function closeCpe() {
                var cpe = $find("cpeForBehavior");
    
                if (cpe.get_Collapsed()) {
                    cpe._doOpen();
                }
                else {
                    cpe._doClose();
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多