asp.net gridview中用checkbox全选的几种实现的区别


1、ext的grid
Ext.grid.CheckboxColumn = function(config){
config.id = config.id || 'ck';
config.columnId = config.id || 'ck';
return Ext.applyIf(config||{},{
init:function(grid){
grid.on('cellclick', this.onCellClick, this);
grid.on('headerclick',this.onHeaderClick,this);
}
,dataIndex:''
,header:'<div class="x-grid3-check-col"></div>'
,enableHeaderControl:true
,masterValue:false
,width:40
,align:'center'
,fixed:true
,headerUnchecked:'<div class="x-grid3-check-col"></div>'
,headerChecked:'<div class="x-grid3-check-col x-grid3-check-col-on"></div>'
,onHeaderClick:function(grid,columnIndex,event){
var cIndex = grid.getColumnModel().getIndexById(this.columnId);
var column = grid.getColumnModel().getColumnById(this.columnId);
if(cIndex == columnIndex && this.enableHeaderControl!==false){
var newValue = (typeof column.masterValue == "undefined")?this.masterValue:!column.masterValue;
column.masterValue = newValue;
var newHeader = newValue==true?this.headerChecked:this.headerUnchecked;
if(column.header != newHeader){
column.header = newValue==true?this.headerChecked:this.headerUnchecked;
grid.getColumnModel().fireEvent("headerchange",cIndex,newHeader);
}
grid.getView().updateHeaders();
if(this.dataIndex != ''){
var ct = grid.getStore().getCount();
for(var i=0;i<ct;i++){
this.toggleCheck(grid,i,columnIndex,newValue);
}
}
}
}
,onCellClick:function(grid,rowIndex,columnIndex,event){
var cIndex = grid.getColumnModel().getIndexById(this.columnId);
if(cIndex == columnIndex) this.toggleCheck(grid,rowIndex,columnIndex);
}
,toggleCheck:function(grid,rowIndex,columnIndex,newValue){
var td = grid.getView().getCell(rowIndex,columnIndex);
var record = grid.getStore().getAt(rowIndex);
var startValue = record.data[this.dataIndex];
if(this.dataIndex != ''){
var newValue = newValue||!Ext.fly(td).hasClass('x-grid3-check-col-on');
var e = {
grid: grid,
record: record,
field: this.dataIndex,
value: newValue,
originalValue: startValue,
row: rowIndex,
column: columnIndex,
cancel: false
};
if( (grid.fireEvent("beforeedit",e)!==false && !e.cancel)&&
(grid.fireEvent("validateedit",e)!==false && !e.cancel)){
record.set(this.dataIndex,newValue);
delete e.cancel;
grid.fireEvent("afteredit",e);
};
//计算选择列
//SetTransportWAndB()
//SetTransportInfo(grid);
}
}
,renderer:function(value,meta,record){
meta.css = 'x-grid3-check-col-td x-grid3-check-col';
if(value==true || value=='true' || value=='on' || value==1 || value=='1'|| value=="True"|| value=="true") meta.css += ' x-grid3-check-col-on';
return '<div class="x-grid3-check-col-inner"> </div>';
}
});
}
这是ext的grid单写checkbox框的实现,后面说明几种情况的效率
2、gridview的两种实现
a、
function CA1(){
var frm=document.Form1;
for (var i=0;i<frm.elements.length;i++)
{
var e=frm.elements[i];
if ((e.name!='Checkbox2') && (e.type=='checkbox'))
{
e.checked=frm.Checkbox2.checked;
if (frm.Checkbox2.checked)
{
hL(e);
}//endif
else
{
dL(e);
}//endelse
}//endif
}//endfor
}
b、
function selectAll(oCheckbox)
{
for(i=1;i<document.all.GridViewGoodsInfo.rows.length;i++)
{
//document.all.GridView1.rows(i).cell(0).children(0).checked=oCheckbox.checked;
GridViewGoodsInfo.rows[i].cells[0].getElementsByTagName("INPUT")[0].checked = oCheckbox.checked; }
}
加上ext的grid自带选择框的四种方案中,ext自带方式效率最低,显示500多条记录全选需要时间最长,需要2分钟多钟,才能完成,修改为第一种方案后,1000条数据用时12秒多,在gridview的两种方法里,a的用时最少1000条5秒钟完成,b的稍慢些,6-7秒完成,以上是测试结果,环境不同,效果也不同,这仅是我个人测试的结果,供大家参考



相关阅读:
asp下轻松实现将上传图片到数据库的代码
生成卡号php代码
调用js时ie6和ie7,ff的区别
javascript学习之闭包分析
利用sql函数生成不重复的订单号的代码
入侵基于JSP+Tomcat的Web网站实录
OpenOffice试用后感想
asp.net生成静态页并分页+ubb
动态网站导航菜单:Javascript和jQuery导航菜单教程
Tensilica公布Linux论坛加强第三方支持
收藏一个代码
将MySQL从MyISAM转换成InnoDB错误和解决办法
html特效代码合集
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 2015个人年度工作小结 温哥华冬天不下雪 爱情就象鬼,相信的人多,见到的人少 河——流 2013年最新客服部经理述职报告 假如世界上没有了书籍作文400字 寒意打湿我的文字 九月份培训工作计划 聘用合同范本【最新版】 忍, 如果我只是爱你 上半年党委组织部工作总结 关于西部农村基础教育调查报告 地球一小时有感400字 2015年终总结格式 四季的脚步作文800字 《万年牢》教学建议 描写“秋天”的优美段落 2015加法教学反思 大学生期末自我鉴定(大一第一学期) 晚清的电报趣事 建设和谐社区演讲稿 学习贯彻十七大精神:推动科学发展 促进社会和谐 四月春午给爱的十封情书 清明节作文:清明节想说的话 小狗“皮皮” 歇后语大全及答案六年级 请不要让妈妈知道 送征衣·过韶阳 游厦门科技馆 健康无价作文500字 夸美女的俏皮话 中队干部竞选自荐书 细水长流、我们才承诺! 《魔法师的帽子》读后感作文800字 暑假家教的实践报告 我的夏令营生活(1)400字 六年一班的那些娃儿(1) 喜迎建国60周年,文明交通我参与作文1200字 读《辉煌共和国》有感作文800字 双十一学生活动策划书 狂风不会永远咆哮,怒涛不会永远卷积着波浪 轮回作文750字 你为我碟舞翩跹,我为你低吟浅唱 小学四年级作文300字:梨园一游 书之旅700字 在你的生命中,有没有被你忽视的那个人? 加强新时期工商系统党建工作的思考 高中高二作文1000字:粉色世界(五) 盐的味道

Copyright © 2016 phpStudy |