zoukankan      html  css  js  c++  java
  • MSCRM 4 Remove 'Add Existing xxxxx to this record' button

    i 've been working on a MS CRM 4 project and found that the custom entities that we added displayed an 'Add Existing xxxxx to this record' button when it was not required and created a lot of confusion amoung the users. Microsoft have said they will make this optional 'In the next release' but that is not soon enough for me! After working through various ideas on how to solve this with Ian Crowther and Steve Vallance we came up with the following fix. Thanks also to 'Dynamic Methods' for this post about hiding buttons: http://dmcrm.blogspot.com/2008/01/hiding-buttons-in-mscrm-40.html This javascript should be added to the onLoad event of the entity where you are having the problem. You then need to call the function removeExistingButton passing in the name of the dataArea div tag and the title of the button you need to remove. (this can be found by using the IE Developer toolbar):

    HideAssociatedViewButton('esp_account_esp_shippingmark''Add existing Shipping Mark to this record');

    function HideAssociatedViewButton(loadAreaId, buttonTitle)
    {

        
    var navElement = document.getElementById('nav_' + loadAreaId);

        
    if (navElement != null)
        {
            
    //覆蓋原來的onclick
            navElement.onclick = function LoadAreaOverride()
            {
                
    // Call the original method to launch the navigation link
                loadArea(loadAreaId);
                
    //我們新加的部份   
                var associatedViewIFrame = document.getElementById(loadAreaId + 'Frame');
                
    if (associatedViewIFrame != null)
                {

                    associatedViewIFrame.onreadystatechange 
    = function HideTitledButton()
                    {
                        
    //完成狀態的話,才去把Button去掉
                        if (associatedViewIFrame.readyState == 'complete')
                        {
                            
                            
    var iFrame = frames[window.event.srcElement.id];
                            
    var liElements = iFrame.document.getElementsByTagName('li');
                            
    for (var i = 0; i < liElements.length; i++)
                            {
                                
                                
    if (liElements[i].getAttribute('title'== buttonTitle)
                                {
                                    liElements[i].style.display 
    = 'none';
                                    
    break;
                                }
                            }
                        }
                    }
                }
            }
        }

    }

    This weeks post comes from one of my co-workers. We've set up a number of solutions for clients where we hide a custom button or even the "Convert Lead" button. If you have hidden buttons in CRM 3.0 you know that the getElementById method is used to find the Id of the button you want to hide and then you use DHTML to hide the button. In CRM 4.0 there is some auto-incremented number or randomly generated number that gets placed at the end of all of the ElementId's on a page. Which means that the code used for CRM 3.0 will break. The solution we found for this is to use the "title" tag, which is linked to the tooltip of your buttons. Here's the code we used to hide a custom button we wrote to map out driving directions to a client:
  • 相关阅读:
    Android——另外一种增删查改的方式(ContentProvider常用)
    VS2012下基于Glut OpenGL glScissor示例程序:
    JAXP的SAX解析
    38岁老男孩个人建站方向求教
    [置顶] 某大型银行深化系统技术方案之十三:服务层之服务接口模式
    比特币人必知术语
    ok6410 u-boot-2012.04.01移植二修改源码支持单板
    最近修bug的一点感悟
    小智慧24
    redis beforesleep
  • 原文地址:https://www.cnblogs.com/janmson/p/1428152.html
Copyright © 2011-2022 走看看