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秒完成,以上是测试结果,环境不同,效果也不同,这仅是我个人测试的结果,供大家参考

时间: 2024-10-03 04:19:04

asp.net gridview中用checkbox全选的几种实现的区别_实用技巧的相关文章

ASP.NET Gridview与checkbox全选、全不选实现代码_实用技巧

1. 页面 在onclick事件中 "传自己" 复制代码 代码如下: <asp:TemplateField HeaderText="全选"> <HeaderTemplate> <input type="checkbox" id="CheckBox1" name="CheckBox1" onclick="GetAllCheckBox(this)" />

ASP.NET GridView控件在列上格式化时间及DataFormatString使用_实用技巧

症状:在GridView绑定日期格式的时候,数据库中的日期为2008-07-04,而GridView显示的是2007-07-04 000000.. 解决办法:想把这后面这多余的零去掉的话在绑定时间的那一列源码后面加上一句话就可以了,如下红色的部分 复制代码 代码如下: <asp:BoundField DataField="BeginDate" HeaderText="开始时间" DataFormatString="{0:d}" htmlen

在Asp.net网页上写读Cookie的两种不同语法介绍_实用技巧

在做asp.net开发时,为了存储一些信息,常常是Session与Cookie同时使用.Session资料在上会找到很多相关的,而Cookie相关的资料相对很少,所以想补充一下.下面是写Cookie的语法: 复制代码 代码如下: Response.Cookies["曲奇名称"].Value = ""; 读Cookie的语法: 复制代码 代码如下: if (Request.Cookies["曲奇名称"] != null) { string cook

ASP.NET Gridview 中使用checkbox删除的2种方法实例分享_实用技巧

方法一:后台代码: 复制代码 代码如下:  protected void btn_delete_Click(object sender, EventArgs e)    {        for (int i = 0; i <this.GridView1.Rows.Count; i++)        {            int id = Convert.ToInt32(this.GridView1.DataKeys[i].Value);            if ((this.Grid

Gridview使用CheckBox全选与单选采用js实现同时高亮显示选择行_实用技巧

Insus.NET对Gridview使用CheckBox单选与全选功能再次进行简单演示,选中的行,使用高亮显示,让用户一目了然看到哪一行被选择了.本例中,使用前端脚本Javascript来实现.还是先看看Insus.NET做出来的效果: Insus.NET原本是从数据库获取数据并绑定至GridView控件的,为了在学asp.net的网友,也能轻易操作,因此这个想法,采用对象存储数据. 首先创建一个对象,[对联]的对象: Couplets.cs 复制代码 代码如下: using System; u

asp.net GridView中CheckBox复选框(兼容FireFox)

在Asp.net中,可以通过模板列,在Gridview中实现CheckBox列的实现,相关的代码并不复杂,你可以参考这里,我抽取的部分代码如下:  代码如下 复制代码 <script language="javascript" type="text/javascript">    function selectAll(obj)    {         var theTable  = obj.parentElement.parentElement.par

支持ASP.NET MVC、WebFroM的表单验证框架ValidationSuar使用介绍_实用技巧

1.支持javascript端和后端的双重验证 (前端目前依赖于jquery.validate.js,也可以自已扩展) 2.代码简洁 3.调用方便 4.功能齐全 使用方法: 新建初始化类,将所有需要验证的在该类进行初始化,语法相当简洁并且可以统一管理,写完这个类你的验证就完成了70% 函数介绍: Add 默认类型(邮件.手机.qq等) AddRegex 正则验证 在Add无法满足情部下使用 addFunc 使用js函数进行验证,一般用于业逻辑的验证 ,功能非常强大,可以满足各种验证(注意:add

asp.net通过js实现Cookie创建以及清除Cookie数组的代码_实用技巧

复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BLTZ.aspx.cs" Inherits="BLTZ" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

GridView中日期不显示时分秒的完美解决方法_实用技巧

两种处理方式: 1.模版列:假设数据表的字段completeTime的类型为时间格式 <asp:TemplateField HeaderText="时间"> <ItemTemplate> <%#Eval("completeTime", "{0:yyyy-MM-dd}")%> </ItemTemplate> </asp:TemplateField> 2.绑定列: <asp:Bound