在DataGrid里绑定CheckBox后,点CheckBox不起作用是怎么回事呀?
.aspx 
  <asp:TemplateColumn>  
  <ItemTemplate>  
  <asp:CheckBox   id= "chkSelect "   runat= "server ">  </asp:CheckBox>  
  </ItemTemplate>  
  </asp:TemplateColumn>      
 .cs 
 //方式一 
 private   void   Button4_Click(object   sender,   System.EventArgs   e) 
 { 
          bool   noChecked   =   true; 
          foreach(DataGridItem   dgi   in   DataGrid1.Items) 
          { 
                         CheckBox   cb=(CheckBox)dgi.FindControl( "chkSelect "); 
                         if(cb.Checked) 
                         {//如果cb被选中的话,执行删除操作 
 	Response.Write( " <script> alert( '成功! ') </script>  "); 
 	noChecked   =   false; 
 	}       
       } 
       if   (noChecked   ==   true) 
       { 
             Response.Write( " <script> alert( '您没有选择要删除的项目! ') </script>  "); 
       } 
 } 
 //方式二 
 private   void   Button4_Click(object   sender,   System.EventArgs   e) 
 { 
       for(int   i=0;i <DataGrid1.Items.Count;i++) 
       { 
          CheckBox   cb=(CheckBox)DataGrid1.Items[i].FindControl( "ckbSelect "); 
          if   (cb!=null) 
          { 
                         if(cb.Checked) 
                         { 
 	Response.Write( " <script> alert( '成功! ') </script>  "); 
 	} 
 	else 
                            { 
    Response.Write( " <script> alert( '您没有选择要删除的项目! ') </script>  "); 
 	} 
          } 
 }   
 在选择了CheckBox后,方式一和方式二都不出现 "成功 "提示,也就是cb为空,或者没选.不知道是怎么回事呀!请指点一下.十分感谢!     
------解决方案--------------------找到原因了: 
 并非没有状态记录,CHECKBOX选中状态在服务器回发后依然选中,由于Viewstate保持了状态。 
 其实由于数据源的重复绑定导致CHECKBOX状态被初始化! 
 改进办法就是把数据源的绑定代码放在 
 if(!IsPostBack) 
 { 
 }