الأحد، 26 يوليو 2015

Dynamics CRM 2013 :Read Sub-Grid Cell value

Here is sample code to get sub grid cell value in MS CRM 2013.

function GetSubGridCellValues() {
    if (document.getElementById("SubGridName")) {
        var grid = document.getElementById("SubGridName").control;
        var ids = gridControl.get_allRecordIds();
        for (i = 0; i < ids.length; i++) {
            alert(gridControl.getCellValue('fieldName', ids[i]));
        }
    }
    else {
        setTimeout("GetSubGridCellValues();", 1000);
    }
}

الخميس، 23 يوليو 2015

Disable Subgrid Control in CRM 2013

function DisableSubgrid(SubgridName) {
    var grid = document.getElementById(SubgridName);
    if (!grid) {
        setTimeout("DisableSubgrid('" + SubgridName + "');", 1000);
        return;
    }
    else {
        grid.control.add_onRefresh(function () {
            var gridCtrl = document.getElementById(SubgridName);
            document.getElementById('titleContainer_' + SubgridName).style.display = 'none';
            var nodes = gridCtrl.getElementsByTagName("tr");
            for (var i = 0; i < nodes.length; i++) {
                if (nodes[i].className == "ms-crm-List-Row-Lite") {
                    nodes[i].className = "";
                    nodes[i].removeAttribute("onmouseover");
                    nodes[i].removeAttribute("onclick");
                    nodes[i].removeAttribute("onmouseout");
                    nodes[i].onclick = function (evt) {
                        evt.stopPropagation();
                        evt.preventDefault();
                    }
                    nodes[i].ondblclick = function (evt) {
                        evt.stopPropagation();
                        evt.preventDefault();
                    }
                }
            }
        });

        document.getElementById('titleContainer_' + SubgridName).style.display = 'none';
        var nodes = grid.getElementsByTagName("tr");
        for (var i = 0; i < nodes.length; i++) {
            if (nodes[i].className == "ms-crm-List-Row-Lite") {
                nodes[i].className = "";
                nodes[i].removeAttribute("onmouseover");
                nodes[i].removeAttribute("onclick");
                nodes[i].removeAttribute("onmouseout");
                nodes[i].onclick = function (evt) {
                    evt.stopPropagation();
                    evt.preventDefault();
                }
                nodes[i].ondblclick = function (evt) {
                    evt.stopPropagation();
                    evt.preventDefault();
                }
            }
        }
    }
}