2014-09-02 59 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; 
       } 

     } 
} 
相關問題