CRM 2016 subgrid 的显示隐藏

function OnLoad() {
//这里隐藏添加子记录的(+) 号按钮
hide_add_btn();
//这里隐藏鼠标在子记录上时的(删除)按钮
hide_del_btn();
//这里处理子记录分页显示问题
Xrm.Page.getControl("list").addOnLoad(hide_del_btn);
}


function hide_del_btn(){
var filteredRecordCount = Xrm.Page.getControl("list").getGrid().getTotalRecordCount();
if(filteredRecordCount <= 0 )
{
 setTimeout("hide_del_btn();", 2500);
}
else 
{
//遍历把删除按钮隐藏,但是有延时.
for(var i = 0; i<filteredRecordCount;i++)
{
var del_btn =  parent.document.getElementById('gridBodyTable_gridDelBtn_'+i);
del_btn.style.display='none'
}


}
}
function  hide_add_btn(){
debugger;
var add_btn = parent.document.getElementById('list_contextualButtonsContainer');
if(add_btn!=null)
{
add_btn.style.visibility='hidden';

}
else
{
 setTimeout("hide_add_btn();", 2500);
}

}

//函数隐藏整个子列表
function Row_SetVisibility(ctrlName, value) {
debugger;

    if (Xrm.Page.ui.controls.get(ctrlName) != null) {

        Xrm.Page.ui.controls.get(ctrlName).setVisible(value);

    }

 

    var row = document.getElementById(ctrlName + '_d');

    if (row == null) row = parent.document.getElementById(ctrlName + '_d');

 

    if (row != null) {

        if (value == true) {

            row.parentElement.style.display = '';

        } else {

            row.parentElement.style.display = 'none';

        }

    }

}

PS:

1 如果直接使用document.getElementById(''); 会一直返回NULL值. 要使用  parent.document.getElementById('');

2 子列表加载比较晚,所以多个地方使用了循环调用函数的方式  setTimeout("hide_add_btn();", 2500);

原文地址:https://www.cnblogs.com/BinBinGo/p/6106263.html