VS2005 ASP.NET中,GridView比较复杂 用了模版列 里面放了一些服务器控件button 另外页面里有比较多的脚本因为数据比较多 GridView行数较多  用层套在外面 但是滚动条变得很卡,客户端配置越低卡的越厉害!个人认为是脚本的问题,因为里面涉及到根据ID取页面元素。我已经尽量优化Javascript了,可还是不行。有哪位朋友解决过这种问题么 因为如果客户端配置不好 那用户体验很糟糕。按理说不应该这么卡的呀,很多网站的脚本肯定比我的复杂得多呀~ 谢谢大家!

解决方案 »

  1.   

    To ytzong ,
    不行啊 禁用ViewState以后 不起作用 还是卡 鼠标只要一离开滚动条再回来  就要点12下左右才能使滚动条呈按下的模样
      

  2.   

    你有设置gridview什么事件么?我用过这种方法,没有什么特殊现象啊。
      

  3.   

    GridView中有服务器端控件 一行4个的话 100多行就使页面里有好400多个服务器控件  是不是这个原因呢?
    还有,就是每行的button的onclick时间 都是执行下面这段脚本。 
    document.getElementById(ctl_base_code+"btn_commit");
    var item_index = document.activeElement.id.replace(/dtg_search_ctl|_txt_val1/g,"");if(window.event.shiftKey)
    if(event.keyCode=="38")等等类似的脚本来定位控件因为控件在gridview里面,所以我只能通过ASP.NET产生的控件动态ID的规律来拼成实际ID,然后定位控件,给他们加上Javascript事件。   function input_help(round_num)
        {
           var ctl_base_code = event.srcElement.id.replace(/txt_val1/g,"");
           if(event.keyCode=="13")
           {
                     //四舍五入
              event.srcElement.value = AmountRound(event.srcElement.value,round_num,"");          if(event.srcElement.id.indexOf("txt_val1")>0)
              {
                   if(window.event.shiftKey)
                   {
                       var btn_commit = document.getElementById(ctl_base_code+"btn_commit");
                       if(btn_commit!=null)
                        {
                            btn_commit.focus();
                        }
                    }
                    else
                    {
                       var btn_save = document.getElementById(ctl_base_code+"btn_save");
                       if(btn_save!=null)
                        {
                            btn_save.focus();
                        }
                    }
              }
              return false;
           }
           else
           {
              if(event.keyCode=="38")
              {
                  var item_index = document.activeElement.id.replace(/dtg_search_ctl|_txt_val1/g,"");
                  if(item_index.length==2&&item_index.indexOf("0")==0)
                  {
                     
                     item_index = item_index.replace(/0/g,"");
                     if(item_index=="2")
                     {
                        return;
                     }
                  }
                  item_index = item_index-1;              if(document.activeElement.id.indexOf("txt_val1")>0)
                  {
                       if(item_index<10)
                       {
                          item_index = "0"+item_index;
                       }
                       var obj_num = document.getElementById("dtg_search_ctl"+item_index+"_txt_val1");
                       if(obj_num!=null)
                        {
                                                                            //四舍五入
                document.activeElement.value = AmountRound(document.activeElement.value,round_num,"");                        obj_num.focus();
                        }
                  }
              }
              else if(event.keyCode=="40")
              {
                  var record_count = "<%=m_record_count%>";
                  var item_index = document.activeElement.id.replace(/dtg_search_ctl|_txt_val1/g,"");
                  
                  if(item_index.length==2&&item_index.indexOf("0")==0)
                  {
                     item_index = item_index.replace(/0/g,"");
                  }
                  item_index = parseInt(item_index)+1;
                  
                  if(item_index==record_count+2)
                  {
                    return;
                  }
                  if(document.activeElement.id.indexOf("txt_val1")>0)
                  {
                       if(item_index<10)
                       {
                          item_index = "0"+item_index;
                       }
                       var obj_num = document.getElementById("dtg_search_ctl"+item_index+"_txt_val1");
                       if(obj_num!=null)
                        {
                                                                            //四舍五入
                document.activeElement.value = AmountRound(document.activeElement.value,round_num,"");                        obj_num.focus();
                        }
                  }
              }
              return true;
           }
        }