在DataGrid控件中添加CheckBox控件列,实现全选/全取消

实现方法有2种,客户端实现和服务端实现

客户端实现
(1)脚本
        <form id="Form1" method="post" runat="server">
            
<asp:DataGrid id="dgCheckBox" runat="server" AutoGenerateColumns="False" Width="472px">
                
<Columns>
                    
<asp:TemplateColumn HeaderText="&lt;input type=checkbox id=CheckAll onclick='javascript:SelAll()'&gt; 全选/全取消">
                        
<ItemTemplate>
                            
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
                        
</ItemTemplate>
                    
</asp:TemplateColumn>
                    
<asp:BoundColumn DataField="LastName" HeaderText="LastName"></asp:BoundColumn>
                    
<asp:BoundColumn DataField="FirstName" HeaderText="FirstName"></asp:BoundColumn>
                
</Columns>
            
</asp:DataGrid>
        
</form>
(2)JavaScript
<script language="javascript">
        
function SelAll()
        
{
            
var RowCnt=<%=RowCount%>;
            
var IsChk;
            IsChk 
= document.all.CheckAll.checked;
            
for(j= 0;j<RowCnt+1;j ++ )
            
{
                
if(typeof(document.all.dgCheckBox.rows(j).cells(0).children(0)) == "object")
                
{
                    document.all.dgCheckBox.rows(j).cells(
0).children(0).checked = IsChk;
            
                }

            }


        }

        
</script>
(3)代码
//定义公共变量,保存数据的行数
public int RowCount;
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
//页面初试化时进行数据绑定
            if(!IsPostBack)
                DataGridDataBind();
        }

//绑定数据
private void DataGridDataBind()
{
DataSet ds 
= new DataSet();
/*
添充数据
*/

RowCount 
= ds.Tables[0].Rows.Count;
}

服务端实现
这个方法就是出发事件回到服务端,捉行查看
posted @ 2006-06-01 10:34  Tim工作室  阅读(296)  评论(0编辑  收藏  举报