首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CollapsiblePanelExtender单击事件

CollapsiblePanelExtender单击事件
EN

Stack Overflow用户
提问于 2009-05-27 17:24:03
回答 2查看 14.9K关注 0票数 2

我有一个通常的扩展和折叠按钮的CollapsiblePanelExtender…我希望有一个点击事件触发时,扩展器是扩展和不同的点击事件触发时,扩展器是折叠的。但最重要的事件是它何时被扩展。我甚至可以在没有点击崩溃的情况下生活。

我发现的大多数在线搜索的例子是:"CollapsiblePanelExtender“"click event”让扩展器基于点击做出反应,甚至在其他地方...

我想让扩展器在点击时触发一个JS。

我应该如何去实现这个目标呢?我是否问错了问题/使用了错误的搜索字符串?

代码语言:javascript
复制
            CollapsiblePanelExtender extendatron = new CollapsiblePanelExtender();
            extendatron.ID = "cpe" + MenuId;
            extendatron.TargetControlID = "pnlContent" + strMenuId;
            extendatron.ExpandControlID = "pnlMenu" + strMenuId;
            extendatron.CollapseControlID = "pnlMenu" + strMenuId;
            extendatron.Collapsed = bCollapsed;
            extendatron.TextLabelID = strMenuName;
            extendatron.ExpandedText = m_strButtonLabelHide;
            extendatron.CollapsedText = m_strButtonLabelShow;
            extendatron.ImageControlID = "imglnk" + strMenuId;
            extendatron.CollapsedImage = "~/App_Themes/default/nbExpand.gif";
            extendatron.ExpandedImage = "~/App_Themes/default/nbCollapse.gif";
            extendatron.SuppressPostBack = true;
            extendatron.ScrollContents = false;

            var extender = $find('extendatron'); //this would be <%=myExtender.ClientID%>
            extender.add_collapsed( function() { alert('collapsed'); });
            extender.add_expanded( function() { alert('expanded'); });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-27 18:08:18

我假设您谈论的是ASP.Net AJAX控件工具包。您可以将处理程序添加到折叠和展开的事件,如下所示:

代码语言:javascript
复制
//this would be <%=myExtender.ClientID%> when using a master page
var extender = $find('myExtender_ClientId'); 
extender.add_collapsed( function() { alert('collapsed'); });
extender.add_expanded( function() { alert('expanded'); });

如果你有任何问题,请告诉我……我已经在不同的解决方案中定制了一些这样的对象。

票数 3
EN

Stack Overflow用户

发布于 2011-11-11 00:09:47

首先,您需要为用户正在单击的面板或控件创建一个客户端(JavaScript) onClick事件。

所以,在这里输入onClick="functionName();"

代码语言:javascript
复制
<asp:Panel ID="pDocumentHeaderTitle" runat="server" CssClass="collapsePanelHeader" onClick="setCollapseState();"> 
       <asp:Image ID="imgDocumentHeaderHeader" runat="server" ImageUrl="~/images/wadown.gif"/>Document Header
       <asp:Label ID="lblDocumentHeaderHeader" runat="server">(Show)</asp:Label>
</asp:Panel>

下一步:添加这个javascript。

代码语言:javascript
复制
<script type="text/javascript">
    function setCollapseState() {
        var extenderDocumentHeader = document.getElementById("MainContent_cpeDocumentHeader_ClientState");
        setCookie("cpeDocumentHeaderStatus", extenderDocumentHeader.value, 5)
    }

    //W3Schools cookie code.
    function setCookie(c_name, value, exdays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + exdays);
        var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
        document.cookie = c_name + "=" + c_value;
    }

    //W3Schools cookie code.
    function getCookie(c_name) {
        var i, x, y, ARRcookies = document.cookie.split(";");
        for (i = 0; i < ARRcookies.length; i++) {
            x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
            y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
            x = x.replace(/^\s+|\s+$/g, "");
            if (x == c_name) {
                return unescape(y);
            }
        }
    }

</script>

请注意,加载页面时,有一个隐藏字段,它是可折叠面板的状态。它将是真或假。转到page source并搜索它,你就会找到它。

然后添加:

var extenderDocumentHeader = document.getElementById("MainContent_cpeDocumentHeader_ClientState");

所以点击一下,获取这个客户端的状态,将它保存在cookie中,然后就可以开始了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/917010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档