【发布时间】:2013-11-21 12:47:42
【问题描述】:
我从this 得到了这个想法,为网格视图着色,但他选择了本地帐户。所以请让我知道有没有办法在在线帐户或试用版上完成上述工作。
【问题讨论】:
标签: gridview dynamics-crm crm dynamics-crm-2013
我从this 得到了这个想法,为网格视图着色,但他选择了本地帐户。所以请让我知道有没有办法在在线帐户或试用版上完成上述工作。
【问题讨论】:
标签: gridview dynamics-crm crm dynamics-crm-2013
我为此找到了更好的解决方案:https://crmgridplus.codeplex.com
【讨论】:
你绝对可以使用 javascript 来做到这一点,但微软不支持操作 DOM
Ps:在线和本地都可以完成
【讨论】:
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];
}
}
注意:您还需要绑定到网格事件以在每次用户页面、快速搜索或刷新数据时重新绘制记录
【讨论】: