在PBWEB下高亮行我们可以用两种方式来进行
第一种就是:采用JS来高亮,这种方式的好处就是可以随意定义高亮色。
代码如下:
function mouseclick(sender,rowNumber,objectname){
//得到当前点击的事物对象标签
var o = window.event.srcElement
//得到当前点击的对象是header还是detail
var objname = o.parentElement.id
//设置需要查找的字符串
var header = "header";
//判断是否为header
if (objname.indexOf(header) == -1 && objectname != "datawindow"){
//得到当前点击的文本容器标签的父对象标签既整个DIV
var div = o.parentElement.parentElement.getElementsByTagName("SPAN");
for (i=0; i<div.length;i++){
//过滤列名,使列背景色不变
if (div[i].parentElement.id.indexOf(header)<0)
div[i].style.backgroundColor="transparent";
}
o.parentElement.style.backgroundColor= "#316ac5";
o.parentElement.style.cursor = "default";
}
}
另外一种是采用PB自带的JS脚本中的函数SELECTROW来控制高亮,该函数的使用方法和C/S下基本一致。唯一有区别的是在C/S下可以直接使用,但是在B/S下必须要指定行信息(rowinfos),如果不指定行信息那么在调用SELECTROW函数脚本时会报行信息错误。具体代码如下。
function mouseclick(sender,rowNumber,objectName){
// PBDataWindow_RButtonDown(sender, rowNumber, objectName)
var o = window.event.srcElement;
var parentid = o.parentElement.id;
if (parentid.indexOf('detail')> -1){
sender.rowInfos[rowNumber - 1]= new HTDW_RowInfoClass(sender.rows[rowNumber],rowNumber);
sender.SelectRow(0,false);
sender.SelectRow(rowNumber,true);
PBDataWindow_Clicked(sender, rowNumber, objectName);
}
}
其中sender.rowInfos[rowNumber - 1] = new HTDW_RowInfoClass(sender.rows[rowNumber],rowNumber)就是对行信息进行了赋值。
这两种的方法比较:
第一种需要对JS比较熟悉的人来进行。
可以自由定义高亮色。
第二种那就是向我一样的不懂JS的人来进行了。
只能是蓝色。如果想换色,必须修改JS脚本中的颜色。PB提供的脚本中有设置。可以进行修改。而且还有问题就是高亮选中后,你想复制某个字段的内容那么就会变成
这样。