现在的位置: 首页 > 综合 > 正文

pb webfrom下JS高亮选择行

2014年08月29日 ⁄ 综合 ⁄ 共 1430字 ⁄ 字号 评论关闭

在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提供的脚本中有设置。可以进行修改。而且还有问题就是高亮选中后,你想复制某个字段的内容那么就会变成

这样。

下面这个就是想复制后在将光标移开点击上面出现的问题。这个问题我一直不知道该如何去处理。

抱歉!评论已关闭.