2017-02-17 94 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

工作就像一個魅力! –

相關問題