有没有人帮我看看为什么这段代码运行的时候老出现‘行731,字符:21 缺少“;’的错误?我看了,根本就不少分号呀!是不是别的什么问题呀?               if (this.Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), jsKey) == false)
                {
                    
                    string js = @"<script >  
 
                    function   TreeDataGrid_changeDisplay(   parentId   ,   id   ,   ids   ){   
                       
    
                    if(   ids   ==   "",""   )   return;                       arr    =   ids.split("","");   
    
                    pref   =   parentId   +   ""_""   ;   
    
                    obj    =   eval(   pref   +   arr[1].split('.')[1]     );   
                    display   =   """";   
                    if(   obj.style.display   ==   """"   )   
                     
                         display   =   ""none""  ;" +                       "\n   imgId   =   pref   +   'img_'   +   id   ;" +
                       "minusImg='" + this._minusImageUrl + "';" +
                       "plusImg='" + this._plusImageUrl + "';" +                      "\n   if(   display   ==   \"\"   )   document.images[   imgId   ].src=   minusImg   ;" +
                      "\n   else     document.images[imgId   ].src=   plusImg   ;\n" +                    @"   
                      for(   i   =   1   ;   i   <   arr.length   ;   i   ++){   
                        
                     if(   arr[i]   ==   ''   )   continue   ;   
                     arrCId   =   arr[i].split('.');   
                     if(   display   ==   ''   &&   arrCId[0]   !=   id   )   continue   ;         
                     obj   =   eval(   pref   +   arrCId[1]     );   
    
                    if(obj==null)   continue   ;     
                    obj.style.display   =   display   ;   
    
                   if(   display   ==   'none'   ){   
                   imgId   =   pref   +   'img_'   +   arrCId[1]   ;   
                   img   =   document.images[   imgId   ]   ;   
                   if(   img   ==   null   )   continue   ;   
                   if(   display   ==   ''   )   document.images[   imgId   ].src=   minusImg   ;   
                   else     document.images[imgId   ].src=   plusImg   ;   
                      }   
    
                    }   
                   }   
                   <"+"/script>";

解决方案 »

  1.   

    下面这个是从生成的HTML代码中截取出来的,请看看有什么错误:<script >  
     
                        function   TreeDataGrid_changeDisplay(   parentId   ,   id   ,   ids   ){   
                           
        
                        if(   ids   ==   ','  )   return;                       arr    =   ids.split(',');   
        
                        pref   =   parentId   +   '_'   ;   
        
                        obj    =   eval(   pref   +   arr[1].split('.')[1]     );   
                        display   =   '';   
                        if(   obj.style.display   ==   ''   )   
                         
                             display   =   'none'  ;
       imgId   =   pref   +   'img_'   +   id   ;minusImg='/_layouts/images/whiteminus.gif';plusImg='/_layouts/images/whiteplus.gif';
       if(   display   ==   ''   )   document.images[   imgId   ].src=   minusImg   ;
       else     document.images[imgId   ].src=   plusImg   ;
       
                          for(   i   =   1   ;   i   <   arr.length   ;   i   ++){   
                            
                         if(   arr[i]   ==   ''   )   continue   ;   
                         arrCId   =   arr[i].split('.');   
                         if(   display   ==   ''   &&   arrCId[0]   !=   id   )   continue   ;         
                         obj   =   eval(   pref   +   arrCId[1]     );   
        
                        if(obj==null)   continue   ;     
                        obj.style.display   =   display   ;   
        
                       if(   display   ==   'none'   ){   
                       imgId   =   pref   +   'img_'   +   arrCId[1]   ;   
                       img   =   document.images[   imgId   ]   ;   
                       if(   img   ==   null   )   continue   ;   
                       if(   display   ==   ''   )   document.images[   imgId   ].src=   minusImg   ;   
                       else     document.images[imgId   ].src=   plusImg   ;   
                          }   
        
                        }   
                       }   
                       </script>
      

  2.   

    <script > 
    多了个空格...
    其他没发现什么问题...
      

  3.   

    可能出现的问题见红色部分,估计你在获取对象时使用的语句不当,
    ----------------------------------------------------------------------------下面这个是从生成的HTML代码中截取出来的,请看看有什么错误: <script >                      function  TreeDataGrid_changeDisplay(  parentId  ,  id  ,  ids  ){  
                          
        
                        if(  ids  ==  ','  )  return;                      arr    =  ids.split(',');  
        
                        pref  =  parentId  +  '_'  ;  
        
                        原来的obj    =  eval(  pref  +  arr[1].split('.')[1]    );  
                       修改的obj= eval("document.getElementById("+pref  +  arr[1].split('.')[1]+")");  
                        display  =  '';  
                        if(  obj.style.display  ==  ''  )  
                        
                            display  =  'none'  ; 
      imgId  =  pref  +  'img_'  +  id  ;minusImg='/_layouts/images/whiteminus.gif';plusImg='/_layouts/images/whiteplus.gif'; 
      if(  display  ==  ''  )  document.images[  imgId  ].src=  minusImg  ; 
      else    document.images[imgId  ].src=  plusImg  ; 
      
                          for(  i  =  1  ;  i  <  arr.length  ;  i  ++){  
                            
                        if(  arr[i]  ==  ''  )  continue  ;  
                        arrCId  =  arr[i].split('.');  
                        if(  display  ==  ''  &&  arrCId[0]  !=  id  )  continue  ;        
                        原来的obj  =  eval(  pref  +  arrCId[1]    );  
                        obj= eval("document.getElementById("+pref  + arrCId[1]+")");  
        
                        if(obj==null)  continue  ;    
                        obj.style.display  =  display  ;  
        
                      if(  display  ==  'none'  ){  
                      imgId  =  pref  +  'img_'  +  arrCId[1]  ;  
                      img  =  document.images[  imgId  ]  ;  
                      if(  img  ==  null  )  continue  ;  
                      if(  display  ==  ''  )  document.images[  imgId  ].src=  minusImg  ;  
                      else    document.images[imgId  ].src=  plusImg  ;  
                          }  
        
                        }  
                      }  
                      </script>
      

  4.   

    obj    =  eval(  pref  +  arr[1].split('.')[1]    );  
    obj  =  eval(  pref  +  arrCId[1]    );
    你可以试一下在这两句后面来一个ALERT(obj);看看
    没有看明白过来你要做什么,感觉问题应该在这里
      

  5.   

    按照你的改了,又说缺少“)” function   TreeDataGrid_changeDisplay(   parentId   ,   id   ,   ids   ){   
                           
        
                        if(   ids   ==   ','  )   return;                       arr    =   ids.split(',');   
        
                        pref   =   parentId   +   '_'   ;   
        
                        obj= eval('document.getElementById('+pref  +  arr[1].split('.')[1]+')');    
                        display   =   '';   
                        if(   obj.style.display   ==   ''   )   
                         
                             display   =   'none'  ;
       imgId   =   pref   +   'img_'   +   id   ;minusImg='/_layouts/images/whiteminus.gif';plusImg='/_layouts/images/whiteplus.gif';
       if(   display   ==   ''   )   document.images[   imgId   ].src=   minusImg   ;
       else     document.images[imgId   ].src=   plusImg   ;
       
                          for(   i   =   1   ;   i   <   arr.length   ;   i   ++){   
                            
                         if(   arr[i]   ==   ''   )   continue   ;   
                         arrCId   =   arr[i].split('.');   
                         if(   display   ==   ''   &&   arrCId[0]   !=   id   )   continue   ;         
                         obj= eval('document.getElementById('+pref  + arrCId[1]+')');     
        
                        if(obj==null)   continue   ;     
                        obj.style.display   =   display   ;   
        
                       if(   display   ==   'none'   ){   
                       imgId   =   pref   +   'img_'   +   arrCId[1]   ;   
                       img   =   document.images[   imgId   ]   ;   
                       if(   img   ==   null   )   continue   ;   
                       if(   display   ==   ''   )   document.images[   imgId   ].src=   minusImg   ;   
                       else     document.images[imgId   ].src=   plusImg   ;   
                          }   
        
                        }   
                       }   
                       </script>
      

  6.   

    parentId  ,  id  ,  ids  这三个参数你传的是什么...
      

  7.   

    气死我了,我在页面中加入一个WEBPART,但是取不到其中自定义的datagrid控件的this.ClientID值,值总是空的,不知道为什么?所以,在不提示缺少分号和后括号只有,又提示缺少对象!