关于DataGrid模板列里的Checkbox全选个人总结

本文介绍了在.NET中使用DataGrid时实现全选/全取消功能的三种方法,包括使用JavaScript脚本、服务器端代码及结合DataGrid头部的checkbox进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当在使用.net服务器控件DataGrid显示数据时,有时会用到在DataGrid加一个模板显示checkbox控件为全选或全取消的功能,在运用过程中做了个人小结,如果还有好方法,多多学习:
None.gif<Columns>
None.gif                        
<asp:TemplateColumn HeaderText="&lt;input type=checkbox id=CheckAll onclick='javascript:SelAll()' title='全选/全取消'&gt;">
None.gif                            
<ItemTemplate>
None.gif                                
<asp:CheckBox ID="chkExport" Runat="server"></asp:CheckBox>
None.gif                            
</ItemTemplate>
None.gif                            
<EditItemTemplate>
None.gif                                
<asp:CheckBox ID="chkExportON" Runat="server"></asp:CheckBox>
None.gif                            
</EditItemTemplate>
None.gif                        
</asp:TemplateColumn>
None.gif
</Columns>

1:点击按钮全选/全消,用javascript脚本控制

None.gif<script language="javascript">
ExpandedBlockStart.gifContractedBlock.gif        
function selectAll()dot.gif{
InBlock.gif            
var len=document.Index.elements.length;
InBlock.gif            
var i;
ExpandedSubBlockStart.gifContractedSubBlock.gif            
for (i=0;i<len;i++)dot.gif{            
ExpandedSubBlockStart.gifContractedSubBlock.gif                
if (document.Index.elements[i].type=="checkbox")dot.gif{
InBlock.gif                    document.Index.elements[i].checked
=true;                                
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif                
ExpandedBlockEnd.gif        }

None.gif
ExpandedBlockStart.gifContractedBlock.gif        
function unSelectAll()dot.gif{
InBlock.gif            
var len=document.Index.elements.length;
InBlock.gif            
var i;
ExpandedSubBlockStart.gifContractedSubBlock.gif            
for (i=0;i<len;i++)dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif                
if (document.Index.elements[i].type=="checkbox")dot.gif{
InBlock.gif                    document.Index.elements[i].checked
=false
ExpandedSubBlockEnd.gif                }
   
InBlock.gif                  
ExpandedSubBlockEnd.gif            }
 
ExpandedBlockEnd.gif        }

None.gif
</script>

2:点击按钮可用服务器端代码控制:
None.gifprivate void btnSelectAll_Click(object sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            System.Web.UI.WebControls.CheckBox chkExport;
InBlock.gif            
if(btnSelectAll.Text == "全选")
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
//循环设置DataGrid中的项
InBlock.gif
                foreach(DataGridItem oDataGridItem in this.DataGrid1.Items)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    chkExport 
= (CheckBox)oDataGridItem.FindControl("chkExport");
InBlock.gif                    chkExport.Checked 
= true;
ExpandedSubBlockEnd.gif                }

InBlock.gif                btnSelectAll.Text
="全消";
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
foreach(DataGridItem oDataGridItem in this.DataGrid1.Items)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    chkExport 
= (CheckBox)oDataGridItem.FindControl("chkExport");
InBlock.gif                    chkExport.Checked 
= false;
ExpandedSubBlockEnd.gif                }

InBlock.gif                btnSelectAll.Text 
= "全选";
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

3:点击DataGrid标头上的checkbox进行选择,也可用脚本控制:
None.gif<script language="javascript">
None.gif    
function SelAll()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
var RowCnt=<%=RowCount%>;
InBlock.gif            
var IsChk;
InBlock.gif            IsChk 
= document.all.CheckAll.checked;
InBlock.gif            
for(j= 0;j<RowCnt+1;j ++ )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
if(typeof(document.all.DataGrid1.rows(j).cells(0).children(0)) == "object")
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    document.all.DataGrid1.rows(j).cells(
0).children(0).checked = IsChk;
InBlock.gif            
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }

None.gif        
</script>
其中RowCount为服务器端DataGrid在绑定时的数据源表的总条数:
None.gifSqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
None.gif            SqlDataAdapter da 
= new SqlDataAdapter("select EmployeeID,LastName,FirstName,BirthDate,Extension,City,TitleOfCourtesy from Employees",conn);
None.gif            DataSet ds 
= new DataSet();
None.gif            da.Fill(ds,
"dataTable");
None.gif            DataView view 
= ds.Tables["dataTable"].DefaultView;
None.gif            RowCount 
= ds.Tables["dataTable"].Rows.Count;
这是个人在运用过程中使用的三种方法,有更好的方法可多多学习!!

转载于:https://www.cnblogs.com/conquer/archive/2006/11/21/567500.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值