2014-09-02 2 views
-1

Я пытаюсь включить и отключить пользовательскую кнопку ленты на основе значений субграда формы. Я создал простой Java-скриптовый метод в качестве веб-ресурса и назову его в правиле Enable с помощью инструментария. Ниже мой код:Контроль видимости кнопок на панели управления CRM 2011

function DisableSendInvitationRibbonButton() 
{ 
    alert('test'); 
    var gridControl = document.getElementById("Attendees").control; 

    if (gridControl.readyState != "complete") 
    { alert('readyState not Complete'); 
     // delay one second and try again. 
     setTimeout(DisableSendInvitationRibbonButton, 100); 
     return; 
    } 
    else 
    { alert('readyState Complete'); 
     var ids = gridControl.get_allRecordIds(); 
     alert(ids.length); 
    } 
} 

Код только отбивание предупреждения «Test», это выглядит как подсеточный не загружается. Любая помощь будет оценена по достоинству.

Спасибо!

+0

убедитесь, что SubGridId верен. – Scorpion

ответ

0

Скорее всего, у вас есть какой-то нулевой вар, которые вы не контрольные попробовать код ниже, чтобы увидеть, где это проблема

function DisableSendInvitationRibbonButton() 
{ 
    alert('test'); 
    var myGrid = document.getElementById("Attendees"); 
    if(myGrid == null) { 
     alert('myGrid is null'); 
     return; 
    } 
    var gridControl = myGrid.control; 
    if(gridControl == null) { 
     alert('gridControl is null'); 
     return; 
    } 
    if (gridControl.readyState != "complete") 
    { alert('readyState not Complete'); 
     // delay one second and try again. 
     setTimeout(DisableSendInvitationRibbonButton, 100); 
     return; 
    } 
    else 
    { alert('readyState Complete'); 
     var ids = gridControl.get_allRecordIds(); 
     alert(ids.length); 
    } 
} 
+0

Этот код дал мне следующий результат: Test, myGrid - null. Я не уверен, что делать дальше. –

+0

это означает, что у вас нет элемента внутри вашего html с идентификатором 'Attendees' – AlexGreg

+0

@HaseebJamshed Вы уверены, что ваша сетка называется« Участники »? Перейдите к настройке подзаголовка в форме и убедитесь, что Имя является посетителем. – wOvalle

0

Спасибо всем за ваши ответы, я могу решить эту проблему, главное что я заметил, что вам нужно будет вызвать Grid на событие change и поместить всю свою логику. ниже мой обновленный код:

function ShareMOM() 
{ 

    var subGridId = "ActionItems"; 

    var grid = document.getElementById(subGridId); 

    if(grid != null) 
     { 
     var val = ReadSelectedSubGridRecords(); 
     return val; 
     } 
    else 
     { 
     return false; 
     } 
} 


function ReadSelectedSubGridRecords() 
{ 
    if (document.getElementById('ActionItems')) 
    { 
     var grid = document.getElementById('ActionItems').control; 
     var ids = grid.get_allRecords(); 

     if (ids.length > 0) 
       { 
       return true; 
       } 
      else 
       { 
        return false; 
       } 

     } 
}