/*
        依照需求一個一個cell賦給事件,改變相應需要的顏色
        參數說明:
    obj : 各單元格
     allcount : 總顯示列數。
           key1 : 複合主鍵1
         key2 : 複合主鍵2(單鍵放空)
  changecolor : 事件賦予顏色
 
     後臺使用,循环gridview每一行,注册JS:

   
             Dim i As Integer
                For i = 0 To e.Row.Cells.Count - 1
                    e.Row.Cells(i).Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;over(this,8,'0','1,2,3,4','#EBEBED')")
                    e.Row.Cells(i).Attributes.Add("onmouseout", "over(this,8,'0','1,2,3,4',currentcolor)")
                Next
     */
     function over(obj,allcount,key1,key2,changecolor)
  {
     var arykey1 = new Array();
     var arykey2 = new Array();
     arykey1=key1.split(',');
     arykey2=key2.split(',');

     if(obj.rowSpan>1)
     {
         var j=obj.parentElement.rowIndex;
         for(j;j<obj.rowSpan+obj.parentElement.rowIndex;j++)
         {
              obj.parentElement.parentElement.rows[j].style.backgroundColor=changecolor;
         }
 
         if(arykey2.length>0)
         {
              if(obj.parentElement.cells.length!=allcount)
              {
                  var i;
                  for(i=obj.parentElement.rowIndex;i>0;i--)
                  {
                      var bol1=false;
                      var k=0;
                      var intpp=obj.parentElement.parentElement.rows[i].cells.length;
                      if(arykey1.length>0)
                      {
                          if(!bol1)
                          {
                              if(intpp==allcount)
                              {
                                  for(k;k<arykey1.length;k++)
                                  {
                                      var intCol=arykey1[k];
                                      if(obj.parentElement.parentElement.rows[i].cells[intCol].rowSpan>1)
                                      {
                                          obj.parentElement.parentElement.rows[i].cells[intCol].style.backgroundColor=changecolor;
                                          bol1=true;
                                      }
                                  }
                              }
                          }
                      }
                      if(bol1) break;
                  }
              }
         }
     }
     else
     {
         var i;
         for(i=0;i<obj.parentElement.cells.length;i++)
         {
              obj.parentElement.cells[i].style.backgroundColor=changecolor;
         }
         if(obj.parentElement.cells.length!=allcount && obj.parentElement.cells.length!=allcount-arykey1.length && arykey2.length>0)
         {         
                    for(i=obj.parentElement.rowIndex;i>0;i--)
                    {
                        var bol2=false;           
                        var bolFlag=false;
                        var k=0;
                        var intpp=obj.parentElement.parentElement.rows[i].cells.length;
                        if(intpp==allcount) bolFlag=true;
                    
                        if(arykey2.length>0)
                        {         
                            if(!bol2)
                            { 
                                var intpp2=obj.parentElement.parentElement.rows[i].cells.length;
                                var intlength=bolFlag?allcount:allcount-arykey1.length;
                                if(intpp2==intlength)
                                {
                                    for(k;k<arykey2.length;k++)
                                    {  
                                        var intCol=bolFlag?arykey2[k]:arykey2[k]-arykey1.length;
                                        if(obj.parentElement.parentElement.rows[i].cells[intCol].rowSpan>1)
                                        {
                                            obj.parentElement.parentElement.rows[i].cells[intCol].style.backgroundColor=changecolor;
                                            bol2=true;
                                        }
                                    }
                                }
                            }
                        }
                        if(bol2) break;
                    }
                }
               
         if(obj.parentElement.cells.length<allcount)
         {
             for(i=obj.parentElement.rowIndex;i>0;i--)
             {
                  var bol1=false;
                  var k=0;
                  var intpp=obj.parentElement.parentElement.rows[i].cells.length;
                  if(arykey1.length>0)
                  {
                      if(!bol1)
                      {
                          if(intpp==allcount)
                          {
                              for(k;k<arykey1.length;k++)
                              {
                                  var intCol=arykey1[k];
                                 
                                  if(obj.parentElement.parentElement.rows[i].cells[intCol].rowSpan>1)
                                  {
                                      obj.parentElement.parentElement.rows[i].cells[intCol].style.backgroundColor=changecolor;
                                      bol1=true;
                                  }
                              }
                          }
                      }
                  }
                  if(bol1) break;
              }

         }
     }
  }

 posted on 2010-04-07 10:49  umen  阅读(409)  评论(0编辑  收藏  举报