zoukankan      html  css  js  c++  java
  • CRM2011: Disable同一个Form上两个同样的Field的其中一个

    很拗口的标题 -_-|||

    需求:

    页面上有两个同样的Field——accountnumber,想Disable其中一个,究竟为什么有这么傻叉的需求就不讨论了,只关注于如何实现。

    看似简单的问题,实际做的时候却遇到问题,一开始,当然是用“Xrm.Page.getControl("accountnumber").setDisabled(true);”,结果发现不行,只有排在前面的那个Field被Disable了,另一个还是enable的。

    为什么另一个不行呢?

    我用了曲折的方法debugging得到结论:

    function disablenumber() {
    debugger;
    //先取得页面上所有tab
    var tabs = Xrm.Page.ui.tabs.get();
    for (var i in tabs) {
    var tab = tabs[i];
    //再取得tab里所有Section,并进行循环
    for(var l in tab.sections.get())
    {
    if(tab.sections.get()[l].getName()=="account information") //我们要Disable的Field在这个Section里
    {
    for(var k in tab.sections.get()[l].controls.get()) //对Section内所有control进行循环
    {
                        //找到accountnumber后Disable,但是这里没有accountnumber,只有accountnumber1

                          if
    (tab.sections.get()[l].controls.get()[k].getName()=="accountnumber"){
    tab.sections.get()[l].controls.get()[k].setDisabled(true);
    break;
    }
    }
    }
    }
    }
    }


    由此得知:如果页面上有多过一个一样的Field,CRM会自动给他们编号,第一个出现的既为原名,下一个就在后面加个1,再下一个加个2,以此类推。。。。。

    所以我们这个需求可以这样实现:

    找到我们要Disable的Field在页面上的位置,然后:

    Xrm.Page.getControl("FieldNameX").setDisabled(true);

  • 相关阅读:
    【C#】ArcFace2 视频人脸比对教程
    C#二次封装虹软arc研究
    【Linux】Face Recognition的封装
    人脸识别 ArcFace Demo [Windows]
    Python创建一个简单的区块链
    Mac更新系统后提示xcrun error
    Hyperledger Fabric开发(二):创建网络
    Hyperledger Fabric开发(一):环境配置
    mac OS和win7笔记本实现文件共享
    代码行数统计的Java和Python实现
  • 原文地址:https://www.cnblogs.com/nixjojo/p/2381644.html
Copyright © 2011-2022 走看看