创建 .js 代码时,我的 Xrm 变量似乎无法正常工作。是否有我需要包含的库或我需要先运行的函数?我是否需要确保正确引用 ClientGlobalContext.js.aspx?我处于“C++”心态,只是想知道是否需要运行任何类型的“包含”命令。

我的 js 文件看起来像这样,如果我删除了“window.parent”。从第二个函数开始,如果我调用它,代码就会中断。

///<reference path="C:\Users\steve.lee\Downloads\XrmPage-vsdoc.js"/>

if (typeof (SDK) == "undefined")
{ SDK = { __namespace: true }; }

SDK.XRM = {
    getCurrentControl: function () {
        var currentControl = Xrm.Page.ui.getCurrentControl();
        if (currentControl == null) {
            alert("No controls currently have focus.");
        }
        else {
            alert("The control for the '" + currentControl.getLabel() + "' attribute currently has focus.");
        }
    },

    getCurrentGUID: function () {

        if (window.parent.Xrm.Page.data.entity != null) {
            var GUIDvalue = window.parent.Xrm.Page.data.entity.getId();
            if (GUIDvalue != null) {
                return GUIDvalue;
            }
            else {
                return null;
            }
        }
        else {
            return null;
        }
    },
 __namespace: true
};

最佳答案

您的代码是作为添加到表单的 javascript 库运行还是位于 Web 资源中?

如果是后者,则需要 window.parent 如果它是 HTML Web 资源。因为这可以让您访问表单上的 Xrm 对象。在它上面的父窗口中。

如果它是附加到表单属性的 javascript 库,则 XRM 对象默认可用。

ClientGlobalContext.js.aspx 用于当您有一个可能不在表单上下文中的 Web 资源但仍然允许您访问服务器 url 和登录用户时使用。

关于dynamics-crm-2011 - Xrm 在 Dynamics CRM 2011 中未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8434885/

10-11 13:14