VS2005 ASP.NET中,GridView比较复杂 用了模版列 里面放了一些服务器控件button 另外页面里有比较多的脚本因为数据比较多 GridView行数较多 用层套在外面 但是滚动条变得很卡,客户端配置越低卡的越厉害!个人认为是脚本的问题,因为里面涉及到根据ID取页面元素。我已经尽量优化Javascript了,可还是不行。有哪位朋友解决过这种问题么 因为如果客户端配置不好 那用户体验很糟糕。按理说不应该这么卡的呀,很多网站的脚本肯定比我的复杂得多呀~ 谢谢大家!
调试欢乐多
不行啊 禁用ViewState以后 不起作用 还是卡 鼠标只要一离开滚动条再回来 就要点12下左右才能使滚动条呈按下的模样
还有,就是每行的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;
}
}