在查找字段中显示所有值 - Dynamics CRM 2015 Web

Show all values in lookup field - Dynamics CRM 2015 Web

我找到了一个答案,通过更改数据库中的值来显示本地查找字段中的所有值 - 但是,这是网络版本,无法访问数据库。

我可以在 javascript 中执行此操作吗?如果是这样,有人可以指出我的参考吗?我在网上找不到我要找的东西。

即我有 12 个查找值,但只显示 10 个而不必 select 'lookup more record.' 我想提交以显示所有 12 个。

谢谢。

我不知道这是 CRM 中的可配置选项 on-premise,但即便如此,也肯定无法更改 Dynamics CRM (365) Online。在线系统的限制之一是您无权访问数据库、注册表、web.config 等

您可以做的(对于某些查找)是将它们替换为模拟查找行为的网络资源。这很简单,例如使用 select2.

可以直接调用REST服务,根据用户输入动态填充。

关于如何将它与 REST 服务一起使用的示例如下:

var baseUrl = Xrm.Page.context.getClientUrl() + "/xrmservices/2011/OrganizationData.svc/";

var crmLookupType = "Account"
var crmLookupSearchField = "Name"
var crmLookupIdField = "AccountId"
var url = baseUrl + crmLookupType + "Set";

$(#mySelect).select2({
    ajax: {
        url: url,
        dataType: 'json',
        data: function (term, page, context) {
            return {
                "$select": crmLookupIdField + "," + crmLookupSearchField,
                "$filter": "startswith(" + crmLookupSearchField + ",'" + term.term + "')"
            };
        },
        delay: 250,
        cache: false,
        processResults: function (data) {
            if (data.d.results && data.d && data.d.results) {               
                return {
                    results: $.map(data.d.results, function (item) {
                        return {
                            text: item[crmLookupSearchField],
                            id: item[crmLookupIdField]
                        };
                    })
                };
            }
            else {
                return [];
            }
        }
    },
    minimumInputLength: 2
}).on("select2:selecting", function (e) {
    $(e.currentTarget).children().remove();
});

Afterwards, when an item is selected you can populate the original lookup field (which you hide on the form) with the selected ID.