protected void dg_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
cart mycart = (cart)Session["icart"];
if (e.CommandName == "edititem")
{
int n = Convert.ToInt16(((TextBox)e.Item.FindControl("tcount")).Text);
double pp = Convert.ToDouble((((TextBox)e.Item.FindControl("tprice")).Text));
//double sum = pp * n; mycart[this.dg.DataKeyField[e.Item.ItemIndex].ToString()].cprice = pp; <----这个地方
mycart[this.dg.DataKeys[e.Item.ItemIndex].ToString()].ccount = n; <----这个地方
//tsum.Text = "合计: " + sum.ToString() + "元";
}
else if (e.CommandName == "delitem")
{
mycart.remove(this.dg.DataKeys[e.Item.ItemIndex].ToString()); <----这个地方
}
this.dg.DataSource = mycart;
this.dg.DataBind();
Session["icart"] = mycart;
}报错!!!上面说索引值超出范围。
可测试的时候明明索引值是0。
各位大虾帮忙看看阿
{
cart mycart = (cart)Session["icart"];
if (e.CommandName == "edititem")
{
int n = Convert.ToInt16(((TextBox)e.Item.FindControl("tcount")).Text);
double pp = Convert.ToDouble((((TextBox)e.Item.FindControl("tprice")).Text));
//double sum = pp * n; mycart[this.dg.DataKeyField[e.Item.ItemIndex].ToString()].cprice = pp; <----这个地方
mycart[this.dg.DataKeys[e.Item.ItemIndex].ToString()].ccount = n; <----这个地方
//tsum.Text = "合计: " + sum.ToString() + "元";
}
else if (e.CommandName == "delitem")
{
mycart.remove(this.dg.DataKeys[e.Item.ItemIndex].ToString()); <----这个地方
}
this.dg.DataSource = mycart;
this.dg.DataBind();
Session["icart"] = mycart;
}报错!!!上面说索引值超出范围。
可测试的时候明明索引值是0。
各位大虾帮忙看看阿
public class cart : IEnumerable
{
Hashtable ht = null; public cart()
{
ht = new Hashtable();
}
public cart(int count)
{
ht = new Hashtable(count);
}
public void add(itemlist myitem)
{
if (ht.ContainsKey(myitem.cid))
{
((itemlist)ht[myitem.cid]).ccount += myitem.ccount;
}
else
{
ht.Add(myitem.cid,myitem);
}
}
public void remove(string itemid)
{
if (ht.ContainsKey(itemid))
{
ht.Remove(itemid);
}
}
public itemlist this[string itemid]
{
get
{
if (ht.ContainsKey(itemid))
{
return (itemlist)ht[itemid];
}
return null;
}
} #region IEnumerable 成员 public IEnumerator GetEnumerator()
{
//throw new Exception("The method or operation is not implemented.");
return ht.Values.GetEnumerator();
} #endregion}
改了还是没有用啊