for(int i=0;i<DataGrid1.Items.Count;i++)
{
CheckBox cb=(CheckBox)this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox1");
if(cb.Checked)

{
                    ....
                  
}

}

解决方案 »

  1.   

    设置ChexkBox的AutoPostBack=true
    ItemCreate事件里CheckBox1.Checked+=new Handler(this.CheckBox1_Checked);
    然后在CheckBox1_Checked事件里写代码
      

  2.   

    WinForm的我有,WebForm不知一样不!首先查查Msdn上的DataGridCheck...具体我忘了。
    那个就能用。
    第二个问题可以使用 peterli1976(声声累) 老兄的
    第三个问题就是在生成CheckBoxColumn类时要加上
    CheckBox1.Checked+=new Handler(this.CheckBox1_Checked);
      

  3.   

    bitsbird(一瓢.net) 
    我在DataGrid里添加的checkbox 没法设置AutoPostBack=true 啊。
      

  4.   

    前台<asp:datagrid id="DataGridShoppingCart" runat="server" AutoGenerateColumns="False" Width="100%">
    <Columns>
    <asp:TemplateColumn Visible="False" HeaderText="商品编号">
    <ItemTemplate>
    <asp:Label id="ProductId" runat="server" Text='<%#((DbDataRecord)Container.DataItem)["ProductId"]%>' />
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="商品名称">
    <ItemTemplate>
    <A href='View.aspx?mid=<%#((DbDataRecord)Container.DataItem)["CategoryId"]%>&did=<%#((DbDataRecord)Container.DataItem)["DetailId"]%>&pid=<%#((DbDataRecord)Container.DataItem)["ProductId"]%>' >
    <%#((DbDataRecord)Container.DataItem)["ProductName"]%>
    </A></asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="ProductType" ReadOnly="True" HeaderText="商品型号"></asp:BoundColumn>
    <asp:BoundColumn DataField="Price" ReadOnly="True" HeaderText="单价(元)"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="数量">
    <ItemTemplate>
    <asp:TextBox id="Quantity" runat="server" Columns="5" MaxLength="3" Text='<%#((DbDataRecord)Container.DataItem)["Quantity"]%>' width="40px" />
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="ExtendedAmount" ReadOnly="True" HeaderText="小计(元)"></asp:BoundColumn>
    <asp:ButtonColumn Text="更新" CommandName="Update"></asp:ButtonColumn>
    <asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
    </Columns>
    </asp:datagrid>后台代码:
    //操作购物车
    private void DataGridShoppingCart_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    ShoppingCartManager shoppingCartManager = new ShoppingCartManager();
    String cartId = shoppingCartManager.GetShoppingCartId();
    //获取产品编号
    int productId = Int32.Parse(((Label)e.Item.Cells[0].FindControl("ProductId")).Text);

    //判断是更新还是删除
    if(e.CommandName=="Update")
    {
    TextBox quantityTxt = (TextBox)e.Item.Cells[0].FindControl("Quantity");
    try
    {
    int quantity = Int32.Parse(quantityTxt.Text);
    if(quantity<=0)//如果数量小于等于0,则移除商品当前项
    ShoppingCartDb.RemoveItem(cartId,productId);
    else//更新商品数量
    ShoppingCartDb.UpdateItem(cartId,productId,quantity);
    }
    catch
    {
    }
    }
    else if(e.CommandName=="Delete")
    {
    ShoppingCartDb.RemoveItem(cartId,productId);
    }
    ShowShoppingCart();
    }