在选中某个CheckBox,但是不返回真,代码如下list.aspx:
<asp:DataGrid id="DataGridInfo" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 40px"
runat="server" AutoGenerateColumns="False" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
BackColor="White" CellPadding="0" Width="100%">
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999"></SelectedItemStyle>
<ItemStyle ForeColor="#000066"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderStyle-Width="22">
<HeaderTemplate>
<asp:CheckBox id="chkAll" Runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:Checkbox id="chkBox" Runat="server"></asp:checkbox>
</ItemTemplate>
</asp:TemplateColumn>

<asp:BoundColumn DataField="Title" HeaderText="标题" HeaderStyle-Width="70%"></asp:BoundColumn>
<asp:BoundColumn DataField="AddDate" HeaderText="日期"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>list.aspx.cs:
private void Button3_Click(object sender, System.EventArgs e)
{
foreach(DataGridItem di in DataGridInfo.Items )
{
System.Web.UI.WebControls.CheckBox ss=new CheckBox();

ss=(System.Web .UI.WebControls .CheckBox)di.Cells[0].FindControl ("chkBox");
//Response.Write ("<script>alert('"+ss.ClientID.Trim()+"');</script>");
if(ss.Checked==true)            //就是这里始终不返回真
{
Response.Write ("<script>alert('"+di.Cells [1].Text+"');</script>");
}
}
}

解决方案 »

  1.   

    foreach (DataGridItem myitem in DataGrid1.Items)
            {
                CheckBox mybox = (CheckBox)myitem.Cells[0].FindControl("mybox");
                if (mybox.Checked == true)
                    Response.Write("<script>alert('"+myitem.Cells[1].Text+"')</script>");
            }测试通过
      

  2.   

    if(ss.Checked)
    {
    ...
    }
    试一试
      

  3.   

    为什么我老是返回的是false呀?
      

  4.   

    可能你将DataGrid的数据邦定放在 Not IsPostBack 判定块之外,导致每次点击执行Page_Load的时候,重新邦定了DataGrid,这样会丢的checkbox的选中信息。