Я пытаюсь отключить просмотр сборщика на счет поиска в 2016 годуОтключить просмотр выбора DIV не доступен в MS CRM
код работает отлично, я имею в виду я не получаю ошибку, но код не смог найти конкретный DIV «parentaccountid».
Где я могу видеть его в элементах:
Но это возвращает {NULL}, когда код пытается получить элементы DIV - document.getElementById («parentaccountid»);
Мой код работает при загрузке страницы возможностей.
Даже на этом этапе я могу увидеть конкретный DIV element- ID: parentaccountid
Где, как я все еще получаю {NULL} значение:
Где, как в 2013 году я видел, как он работает очень хорошо. Извините, у меня нет данных для обмена здесь, но он отлично работает.
Вот код ниже:
function DisablePick()
{
\t VULoader();
\t
\t //call this function from OnLoad handler
\t function VULoader(){
\t \t var myLookup1;
alert("Hello..I am Here");
\t var fetch = "<fetch mapping='logical'>"
+"<entity name='account'>"
+"<attribute name='name'/>"
+"<filter type='and'>"
+"<condition attribute='name' operator='eq' value='Blue Yonder Airlines (sample)' />"
+"</filter>"
+"</link-entity>"
+"</entity>"
+"</fetch>";
\t \t
\t \t myLookup1 = new XrmLookupField("parentaccountid");
\t \t myLookup1.AddLockedView(
\t \t \t //sViewId
\t \t \t myLookup1.NewGuid() ,
\t \t \t //sEntityName
\t \t \t "account",
\t \t \t //sViewDisplayName
\t \t \t "My Locked Custom View",
\t \t \t //sFilterXml
\t \t \t fetch,
\t \t \t //sFilterLayout
\t \t \t layout(1, "name", "accountid")
\t \t \t \t .column("name", 200)
\t \t \t .toString()
\t \t);
\t }
\t function XrmLookupField(sId) {
\t \t var xlf = this;
\t \t //control instance
\t \t xlf.Ctl = Xrm.Page.getControl(sId);
\t \t //dom instance
\t \t xlf.Dom = document.getElementById(sId);
\t \t //jquery instance
\t \t xlf.$ = $(xlf.Dom);
\t
\t \t /* 2013 addition --- Inline Control instance --- */
\t \t xlf.$i = $("#" + sId + "_i");
\t
\t \t //use that to disable the view picker
\t \t xlf.DisableViewPicker = function() {
\t \t \t /* 2013 addition --- The attribute capitalization changed */
\t \t \t xlf.SetParameter("disableviewpicker", "1");
\t \t }
\t \t //use that to enable the view picker
\t \t xlf.EnableViewPicker = function() {
\t \t \t /* 2013 addition --- The attribute capitalization changed */
\t \t \t xlf.SetParameter("disableviewpicker", "0");
\t \t }
\t \t
\t \t //set undocumented attributes
\t \t \t xlf.SetParameter = function (sName, vValue) {
\t \t \t xlf.$.attr(sName, vValue);
\t
\t \t \t /* 2013 addition --- Also change the inline contorl value */
\t \t \t xlf.$i.attr(sName, vValue);
\t \t }
\t \t
\t \t //add locked view
\t \t xlf.AddLockedView = function (sViewId, sEntityName, sViewDisplayName, sFilterXml, sFilterLayout) {
\t \t \t //first enable the view picker
\t \t \t xlf.EnableViewPicker();
\t \t \t //add the custom view (last parameter set the view as default)
\t \t \t xlf.Ctl.addCustomView(sViewId, sEntityName, sViewDisplayName, sFilterXml, sFilterLayout, true);
\t \t \t //lock the view picker
\t \t \t xlf.DisableViewPicker();
\t \t }
\t \t //create new guid
\t \t xlf.NewGuid = function() {
\t \t \t var d = new Date().getTime();
\t \t \t var guid = '{xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx}'.replace(/[xy]/g, function (c) {
\t \t \t \t var r = (d + Math.random() * 16) % 16 | 0;
\t \t \t \t d = Math.floor(d/16);
\t \t \t \t return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
\t \t \t });
\t \t \t return guid;
\t \t }
\t }
}
Несколько точек говоря:
Я вызываю метод DisablePicker по нагрузке на странице возможностей. Да, я уже проверил, существует ли какой-либо дубликат идентификатора, но я не нашел его.
Я попытался запустить этот метод при загрузке поля Счета, но не ответил.
Если я изменил значение disableviewpicker свойства от 0 до 1 в самом DIV вручную из браузера после загрузки страницы &, откройте поиск, а затем он изменит значение.
Действительно, я не понимаю, почему он ведет себя подобным образом, мне просто нужно знать, где именно я ошибаюсь, или это ошибка продукта, но я не думаю, что это так. Как его очень основное поведение.
PS: Для моих друзей не MS CRM я не могу изменить DIV или что-либо кроме моего кода JavaScript.
Да, я могу получить DIV с помощью parent.document, но у меня есть два вопроса: посмотрите, можете ли вы также помочь в этом? 1) Это происходит потому, что страница CRM 2013 загружается по-другому, чем CRM 2016? 2) Нужно ли мне при необходимости загружать фрейм в ClientApiWrapper.aspx во время загрузки, если да, то как или просто нужно использовать код Xrm.Page.context.client.getClient или есть другой способ сделать. Я нашел несколько блогов, но я этого не понял. Да, Большое спасибо за ваш вклад. – Deep
1) Да, в какой-то момент структура страницы изменилась, я не помню, когда именно. 2) Код, который вы публикуете в CRM, не должен беспокоиться о переключении фреймов, он всегда может делать «parent.document.getElementById'. При использовании инструментов Dev вы должны будете заниматься переключением кадров. – Polshgiant