请教DataGrid中,ButtonColumn模式下 删除出错问题!!!!
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<html>
<head>
<meta name="GENERATOR" Content="ASP Express 3.1">
<title>Untitled</title>
<script language="C#" Runat="Server">
//声明表格对象
DataTable Cart;
//声明视图对象
DataView CartView;
protected void Page_Load(object sender, EventArgs e)
{
if(Session["ShoppingCart"]== null)
{
Cart = new DataTable();
Cart.Columns.Add(new DataColumn("物品",typeof(string)));
Session["ShoppingCart"]= Cart;
}
else{
Cart=(DataTable)Session["ShoppingCart"];
}
CartView = new DataView(Cart);
ShoppingCart.DataSource = CartView;
ShoppingCart.DataBind();
if(!IsPostBack){
// 建立数据库
SqlConnection myConnection = new SqlConnection("server=(local);database=Northwind;user id=sa");
//创建SqlAdapter对象
SqlDataAdapter mycmd= new SqlDataAdapter("select * from Categories",myConnection);
//创建DataSet对象
DataSet ds= new DataSet();
//将查询结果填充到DataSet对象中
mycmd.Fill(ds,"Categories");
//将DataGrid的数据源设定为DataSet对象
MyDataGrid.DataSource=ds.Tables["Categories"].DefaultView;
//实现数据绑定
MyDataGrid.DataBind();
}
}
void Grid_CartCommand(Object sender, DataGridCommandEventArgs e)
{
DataRow dr = Cart.NewRow();
//e.Item是被触发的表格的行
TableCell itemCell = e.Item.Cells[1];
string item = itemCell.Text;
//如果被触发的按钮是AddToCart,则添加商品
if(((LinkButton)e.CommandSource).CommandName == "AddToCart")
{
dr[0] = item;
Cart.Rows.Add(dr);
}
『=====出错的地方========』
else{//删除商品
CartView.RowFilter = "物品='"+item+"'"; //『这里提示出错』
if(CartView.Count > 0){
CartView.Delete(0);
}
CartView.RowFilter="";
}
ShoppingCart.DataBind();
}
</script>
</head>
<body>
<h3>test</h>
<form Runat="Server">
<asp:DataGrid ID="MyDataGrid" Runat="Server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="false"
OnItemCommand="Grid_CartCommand"
>
<Columns>
<asp:BoundColumn HeaderText="序号" DataField="CategoryID"/>
<asp:BoundColumn HeaderText="名称" DataField="CategoryName"/>
<asp:BoundColumn HeaderText="描述" DataField="Description"/>
<asp:ButtonColumn HeaderText="Add" Text="Add" CommandName="AddToCart"/>
<asp:ButtonColumn HeaderText="Remove" Text="Remove" CommandName="DelFromCart"/>
</Columns>
</asp:DataGrid>
<br>
<asp:DataGrid ID="ShoppingCart" Runat="Server"
BorderColor="Black"
BorderWidth="1"
GridLines="Both"
ShowFooter="False"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
/>
</form>
</body>
</html>