2014-09-02 58 views
-1

我试图启用和禁用基于窗体的子网格值的自定义功能区按钮。我创建了一个简单的Java脚本方法作为Web资源,并在使用工作台启用规则中调用它。下面是我的代码:客户关系管理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); 
    } 
} 

该代码只是击中警告“测试”,它看起来像子网格不加载。 任何帮助,将不胜感激。

谢谢!

+0

确保SubGridId是正确的。 – Scorpion 2014-09-02 14:17:57

回答

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。我不确定接下来要做什么。 – 2014-09-02 14:25:53

+0

这意味着你的HTML中没有元素,其ID为'Attendees' – AlexGreg 2014-09-02 14:42:39

+0

@HaseebJamshed你确定你的网格被称为“参加者”?转到定制表格中的子网格并检查名称是与会者。 – wOvalle 2014-09-02 18:37:06

0

感谢所有您的答复,我能解决这个问题,主要的一些空变种我注意到的事情是,你必须在变化事件中调用Grid并将所有逻辑放在那里。以下是我的更新代码:

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; 
       } 

     } 
} 
相关问题