for(int i=0;i<DataGrid1.Items.Count;i++)
{
CheckBox cb=(CheckBox)this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox1");
if(cb.Checked)
{
....
}
}
解决方案 »
- 如何生成随机不重复的8位字符串,字符串包括数字和字母?
- 请教:怎么判断页面上的datagrid有没有绑定数据
- sql server2000表中某个单元格有大量数据,在C#中要用什么方法来读取?
- C#播放器添加文件夹
- 窗体程序中调用控制台程序的困惑
- C#2005 调用外部命令问题--用VS运行无问题,但直接运行EXE就不行
- 如何监视某个进程是否在运行?
- 索引超出范围,必须为非负值并小于集合大小
- C#调用C++ 函数分配内存
- 打印队列传回的值怎样转为时间模式显示?-C#(不好意思,我没分了.)
- 我在向一个表格中插入一条记录时,这条记录有某个字段带有特殊符号 '所以在插入时老是说语法有问题,请问怎么解决啊?
- 发表我前几天写的 【围棋】 打谱程序中的核心代码:子串搜索以及打劫判断,不能自杀的判断,提子判断。。。
ItemCreate事件里CheckBox1.Checked+=new Handler(this.CheckBox1_Checked);
然后在CheckBox1_Checked事件里写代码
那个就能用。
第二个问题可以使用 peterli1976(声声累) 老兄的
第三个问题就是在生成CheckBoxColumn类时要加上
CheckBox1.Checked+=new Handler(this.CheckBox1_Checked);
我在DataGrid里添加的checkbox 没法设置AutoPostBack=true 啊。
<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();
}