سؤال

لدي Collapsibanelextender مع أزرار التمديد المعتادة والانهيار .... أود الحصول على حريق الحدث انقر عند تمديد الموسع وانطلاق الحدث انقر مختلف عند انهار الموسع. لكن الحدث الأكثر أهمية هو عندما تم تمديده. يمكنني العيش بدون نقرة حتى في الانهيار.

معظم الأمثلة التي عثرت عليها في البحث عبر الإنترنت باستخدام: "CollapsAblePanElextender" "انقر فوق" الحدث "هو تفاعل موسع بناء على نقرة حتى الآن ...

أريد أن يطلق الموسع من JS عند النقر عليه.

كيف يجب أن أذهب حول إنجاز هذا؟ هل سأطلب سؤال خاطئ / باستخدام سلاسل البحث الخاطئة؟

            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'); });
هل كانت مفيدة؟

المحلول

أفترض أنك تتحدث عن مجموعة أدوات التحكم ASP.NET AJAX. يمكنك إضافة معالجات إلى الأحداث المنهارة والموسعة كما يلي:

//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'); });

اسمحوا لي أن أعرف إذا كان لديك أي أسئلة ... لقد فعلت قليلا من تخصيص بعض هذه الكائنات في حلول مختلفة.

نصائح أخرى

أولا، تحتاج إلى إنشاء جانب عميل (JavaScript) onClick الحدث للوحة أو المستخدمين التحكم في النقر فوق.

لذلك، اذهب إلى هناك onClick="functionName();"

<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>

التالي: إضافة هذه الجافا سكريبت.

<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>

لاحظ، عندما يتم تحميل صفحتك، هناك حقل مخفي هو حالة لوحاتك القابلة للطي. سيكون صحيحا أو خطأ. انتقل إلى مصدر الصفحة والبحث عن ذلك ستجده.

ثم أضف:

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

لذلك، انقر فوق، احصل على حالة العملاء هذه، وحفظها في ملف تعريف الارتباط وجيد الخاص بك!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top