在动态crm 2013中着色gridview?

时间:2013-11-21 12:47:43

标签: gridview dynamics-crm crm dynamics-crm-2013

我从this得到了这个想法,要为gridview着色,但是他去了内部帐户。所以,请告诉我有没有办法完成上述在线帐户或试用版的工作。

3 个答案:

答案 0 :(得分:1)

我找到了一个更好的解决方案:https://crmgridplus.codeplex.com

答案 1 :(得分:0)

你绝对可以使用javascript来做到这一点,但微软不支持操纵DOM

Ps:可以在线上和在线上完成

答案 2 :(得分:0)

Found this on the web。看起来简短而且看似非常低效 我敢打赌,如果网格每页包含250条记录,用户会感到痛苦。

function alterGridRecords() {
    var gridTH = document.getElementById("crmGrid_divDataArea");
    var headers = gridTH.getElementsByTagName("TH");
    var tdata = gridTH.getElementsByTagName("TD");
    for (var n = 0; n < headers.length; n++)  {
        if (headers[n].innerText == "Rating") {
            for (var i = 0; i < tdata.length; i++)  {
                if (tdata[i].innerText == "Hot") 
                    tdata[i].style.backgroundColor = "green";
            }
        }
    }
}

所以我在运行中重写了它(未经过测试)以提高效率。

function alterGridRecords() {
   var colName = "Rating";
   var gridId  = "crmgrid id here";
   var gridTH = document.getElementById(gridId);

   //find colName index
   var colIndex = (function(){ 
       var aTH = gridTH.getElementsByTagName("TH");
       for(var i = 0 ; i < aTH.length ; i++)
           if (aTH[i] == colName) return i;
       return -1;
   })();

   if (colIndex == -1) return;

   var colors = {
      Hot : "red",
      Cold : "green"
   }

   var rows = gridTH.getElementsByTagName("TR");    
   for (var r = 0 ; r < rows.length ; r++)
   {
       var cell = rows[r].cells[colIndex];
       cell.style.backgroundColor = colors[cell.innerText];
   }
}

注意:您还需要绑定到网格事件以获取每次用户页面重新绘制的记录,快速搜索或刷新数据