【问题标题】:Get subgrid control in onLoad event在 onLoad 事件中获取子网格控件
【发布时间】:2014-04-02 08:54:10
【问题描述】:

我尝试让子网格控件将其设置为不可见。这是我的代码

function OnReady(){
   var subgrid = document.getElementById("documents_subgrid");
   if (subgrid == null) {
       setTimeout(OnReady(), 1000);
       return;
   }
}

此代码适用于加载。它在 CRM2011 中有效,但在 CRM2013 中无效

请帮忙

【问题讨论】:

    标签: javascript controls dynamics-crm-2013 subgrid


    【解决方案1】:

    如果您获得控制权并使用 .setVisible("false") 会更好。在 2013 年,控件的 html 发生了变化,这可能是 js 无法正常工作的原因,因为您获得了可能不再存在的 div 的 id。请注意子网格的加载方式存在一些问题。

    【讨论】:

    • 如果我得到 document.getElementById("documents_subgrid").control 有错误“无法获取属性控制或未定义或空引用”,因为我无法从页面中获取元素
    • 嗨 ernikoss,获取控件,我的意思是使用 Xrm.Page.ui.controls,使用正确名称获取所有控件,您应该能够隐藏/显示它。我的建议是不要直接使用子网格(这可能很烦人),而是修改表单,添加一个部分,将子网格放入该部分并使用它:Xrm.Page.ui.tabs.get(" yourtabname").sections.get("你的分区名").setVisible(false);
    【解决方案2】:

    我找到了解决办法

    var timer = setInterval(function () { GetSubgrid(); }, 1000);
    function GetSubgrid() {
        var div = document.getElementById("temp_subgrid");
        if (div != null) {
            clearInterval(timer);            
        }
    }
    

    将计时器设置为加载事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 2013-10-18
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      相关资源
      最近更新 更多