2017-02-17 93 views
0

我发现了一个答案,通过更改db中的值来显示内部部署查找字段中的所有值 - 但是,这是Web版本,无法访问到数据库。显示查找字段中的所有值 - Dynamics CRM 2015 Web

我可以在JavaScript中做到这一点?如果是这样,有人可以指点我参考吗?我无法在网络上找到我要找的内容。

I.e.我有12个查找值,但只显示10个而不必选择'查找更多记录'。我想要提交显示全部12.

谢谢。

+0

你在数据库中更改了什么值(表和字段)来完成这项工作? – Nicknow

回答

1

我不知道这是CRM内部部署的可配置选项,但即使如此,确实无法更改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(); 
}); 

之后,一个项目被选中时,你可以填入原来的查找字段(您隐藏窗体上)与选定的ID。

+0

非常好!我们将实施这个,让你知道这是怎么回事。当我们能够运作时,我们会接受答案。再次感谢!另外,我假设我需要使用REST套件? –

+1

否。select2库在内部处理其余呼叫。我相信它依赖于jQuery。 – kowgli

+0

工作就像一个魅力! –

相关问题