javascript - 如何确保crm页面加载完成

标签 javascript dynamics-crm dynamics-crm-2016

我使用dynamics-crm 2016,我的任务是 - 用户单击新按钮(在表单上 - 创建新记录)后,表单将加载时,我需要检查某个字段并根据该字段锁定我的表单。

当我从 onLoad 函数检查该字段为空时,如何检查我的页面是否已加载或 Xrm/Crm 中的所有字段都已满? 我的代码:

function OnLoad() {
        try {

             if (formType == formTypes.Create) {
      checkNeedsUnique();      
      }

    } catch (e) {
        frameworkGlobal.reportExceptionToServer(e);
    }            
};

//函数

function checkNeedsUnique(){
//portfolio return Null     
   var portfolio = Xrm.Page.getAttribute("protfolioid").getValue();
           var filter = "needsSet?$select=needsId&$filter=protfolioid/Id eq guid'"+ portfolio[0].id+"' and statecode/Value eq 0";
           var ret = frameworkGlobal.RetrieveMultiple(filter, false);
           if(!!ret && ret.length>0){          
           disableAllFields();
           }

        }

最佳答案

如果您从表单的 onLoad 事件调用函数 OnLoad,则所有字段都已加载。您无法从某些 $(document).ready 调用它,因为它无法正常工作。

您正在检查的字段(portfolio)必须存在于表单中(或者,如果您有 Dynamics 365 9.0,则可以将此字段添加为脚本 dependencies )。它可以隐藏,也可以放置在某个隐藏部分,但它必须在那里,我相信您没有将其放在表单上,​​或者您将其放在标题上(您应该将其称为 "header_portfolioid"),这就是为什么你得到 null。

如果您无法将其放入表单中,则必须使用 API 调用来检索其值。

关于javascript - 如何确保crm页面加载完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48259669/

相关文章:

dynamics-crm - 动态 CRM 2011 : Managed Solutions or deploying changes from DEV to PRD

javascript - 接收 JSON 格式的图像数据并将其注入(inject) DOM

javascript - 如何解决这个双重ajax调用问题

javascript - 单击按钮时显示进度 Dynamics CRM 365

c# - 从 Ribbon JScript CRM Online 2011 调用 C# 代码

javascript - 动态Crm 2016在线: client-side record creation preventing not working

javascript - 设置子网格的 fetchXML 时,无法读取 Dynamics CRM 中未定义的属性 'SetParameter'

javascript - 带有 Node js 的 CRM WebAPI 2016

javascript - 使用 cookie 保持 jQuery 菜单打开

javascript - 让 Chrome 应用程序与 Chrome 扩展程序交互