CRM 2011表单中的导航项目

时间:2012-01-02 11:08:27

标签: dynamics-crm-2011

如何折叠/展开表单中的导航项?有一个函数setDisplayState,但是对于Tabs而不是导航项。

如何使用javascript for crm 2011 ??

折叠/展开导航项目

1 个答案:

答案 0 :(得分:3)

Xrm对象允许interacting with navigation items,但导航标签本身不允许,因此您必须使用不受支持的方法(可能/可能不会完全破坏或以其他方式使其无关紧要)在下一版本的Dynamics CRM中)。

下面是一个示例,它检查每个导航选项卡的折叠状态并适当地折叠它们。

function SetCollapsedState(navigationName, makeCollapsed) {
    var navItems = document.getElementById("crmFormNavSubareas");
    for (i = 0; i < navItems.childNodes.length; i++) {
        var navItem = navItems.childNodes.item(i);
        var navChild = navItem.firstChild.firstChild;
        var navName = navChild.attributes.getNamedItem("alt").nodeValue;
        if (navName.indexOf(navigationName) === 0) {

            // The "alt" property changes to read "Collapsed" or "Expanded" when 
            // the navigation tab is clicked; this is how I imagine the internal
            // CRM js checks the collapsed state of each tab.

            if ((makeCollapsed === true && navName.indexOf("Expanded") > 0)
                 || (makeCollapsed === false && navName.indexOf("Collapsed") > 0)) {
                navItem.firstChild.click();
            }
        }
    }
}

P.S。你的答案包括作为你的问题的评论(顺便说一句,应该可以作为一个实际的答案)同样地解决你的问题,但我决定发布任何方式包括一个更全面的功能,并提到究竟是什么{ {1}}对象处理/不处理。