在动态生成表格时,通过列的值去控制某行的颜色,比如对于当前记录,如果该值为1,那么该行就为红色;
如果该值为2,那么改行就显示为绿色,等等。
但执行的效果是,最后一行没有颜色,而且所有的行的颜色都向上错了一行。
感觉是表头占了一行似的。
比如:
表头
行 1 红色
行 1 红色
行 2 绿色
行 2 绿色
行(最后一行) 2 没有颜色了最后一行应该显示为绿色才对啊。
如果该值为2,那么改行就显示为绿色,等等。
但执行的效果是,最后一行没有颜色,而且所有的行的颜色都向上错了一行。
感觉是表头占了一行似的。
比如:
表头
行 1 红色
行 1 红色
行 2 绿色
行 2 绿色
行(最后一行) 2 没有颜色了最后一行应该显示为绿色才对啊。
window.setInterval("reload()",100);
function reload() {
DataList.GridViewSource(callback);
}
function callback(r) {
var rows = r.value.Rows, tb = document.getElementById('gv1'),tr,td;
while (tb.rows.length > 1) tb.deleteRow(1); //删除除了页头的行
//alert(rows.length);
for (var i = 0; i < rows.length; i++) {
if(parseInt(rows[i].Type)==1)
{
tb.rows[i].bgColor="FFFFCC";
}
else if(parseInt(rows[i].Type)==2)
{
tb.rows[i].bgColor="9999FF";
}
tr = tb.insertRow(tb.rows.length);
td = tr.insertCell(0); td.innerHTML = rows[i].RecTime;
td = tr.insertCell(1); td.innerHTML = rows[i].SrceID;
td = tr.insertCell(2); td.innerHTML = rows[i].DestID;
td = tr.insertCell(3); td.innerHTML = rows[i].Type;
}
}
</script>
如果行大于2行,则删除第2行,并且一直删到只有2行?
自己调试一下! for (var i = 0; i < rows.length; i++) {
tr = tb.insertRow(tb.rows.length);
td = tr.insertCell(0); td.innerHTML = rows[i].RecTime;
td = tr.insertCell(1); td.innerHTML = rows[i].SrceID;
td = tr.insertCell(2); td.innerHTML = rows[i].DestID;
td = tr.insertCell(3); td.innerHTML = rows[i].Type; if(parseInt(rows[i].Type)==1)
{
tb.rows[i].bgColor="FFFFCC";
}
else if(parseInt(rows[i].Type)==2)
{
tb.rows[i].bgColor="9999FF";
}
}
tr = tb.insertRow(tb.rows.length);
td = tr.insertCell(0); td.innerHTML = rows[i].RecTime;
td = tr.insertCell(1); td.innerHTML = rows[i].SrceID;
td = tr.insertCell(2); td.innerHTML = rows[i].DestID;
td = tr.insertCell(3); td.innerHTML = rows[i].Type; if(parseInt(rows[i].Type)==1)
{
tr.bgColor="FFFFCC";
}
else if(parseInt(rows[i].Type)==2)
{
tr.bgColor="9999FF";
}
}
tr = tb.insertRow(i);
td = tr.insertCell(0); td.innerHTML = rows[i].RecTime;
td = tr.insertCell(1); td.innerHTML = rows[i].SrceID;
td = tr.insertCell(2); td.innerHTML = rows[i].DestID;
td = tr.insertCell(3); td.innerHTML = rows[i].Type; if(parseInt(rows[i].Type)==1)
{
tr.bgColor="FFFFCC";
}
else if(parseInt(rows[i].Type)==2)
{
tr.bgColor="9999FF";
}
}
竟然都没有颜色了。
tb.insertRow(i)表示在i处插入一行吧。
应该是tb.deleteRow(0)吧,这个才是删除表头吧