代码之家  ›  专栏  ›  技术社区  ›  Chris

CollapsiblePanelExtender:我可以从客户端javascript启动折叠/展开吗?(AJAX控件工具包)

  •  1
  • Chris  · 技术社区  · 17 年前

    for each CollapsiblePanelExtender on this page, call somethingOrOther(extender)
    

    3 回复  |  直到 17 年前
        1
  •  1
  •   Mathumitha    13 年前

    <asp:Image ID="img1" runat="server" OnClick="ExpandCollapse()"/>  
    
    function ExpandCollapse() {
        $find("collapsibleBehavior1").set_Collapsed(true);
        $find("collapsibleBehavior2").set_Collapsed(true);
    }
    

    希望这能有所帮助!

        2
  •  1
  •   Carsten    13 年前

    我现在有一个部分有效的解决方案。

    CollapsiblePanelBehavior.debug.js expandPanel() get_Collapsed() 在javascript中访问这些行为的关键似乎是设置 BehaviorID CollapsiblePanelExtender ASP中的标签。网。

    我修改了页面上的中继器,以便 s是可以预测的,大致如下:

    <ajaxToolkit:CollapsiblePanelExtender 
        BehaviorID="<%#'collapsebehavior'+DataBinder.Eval(Container.DataItem,'id')%>"
        ID="CollapsiblePanelExtender" runat="server" />
    

    这会导致命名为的行为 collapsebehavior1 , collapsebehavior2 , collapsebehavior3 等等。。

    function expandAll() {
        var i = 0;
        while (true) {
            i++;
            var name = 'collapsebehavior' + i;
            var theBehavior = $find(name);
            if (theBehavior) {
                var isCollapsed = theBehavior.get_Collapsed();
                if (isCollapsed) {
                    theBehavior.expandPanel();
                }             
            } else {
                // No more more panels to examine
                break;
            }
        }
    }
    

    我肯定用 $find 在这样的循环中效率真的很低,但这就是我到目前为止所拥有的。

        3
  •  0
  •   J.Steve    15 年前

    您还可以切换面板,在折叠/展开状态之间切换:

        function toggle() {
            var MenuCollapser = $find("name");
            MenuCollapser.togglePanel();
        }
    
    推荐文章