protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {
  DataTable cart1 = new DataTable();
  if (e.CommandName == "select")
  {
  if (Session["shopcart2"] == null)
  {
  cart1.Columns.Add("商品编号", typeof(string));
  cart1.Columns.Add("商品名称", typeof(string));
  cart1.Columns.Add("单价", typeof(double));
  cart1.Columns.Add("订购数量", typeof(int));
  cart1.Columns.Add("合计", typeof(double));
  Session["shopcart2"] = cart1;  }
  // Response.Write("<script>alert('购物车中没有任何商品!') </script>");  cart1 = (DataTable)Session["shopcart2"];
  int index = Convert.ToInt32(e.CommandArgument);
  GridViewRow row = GridView1.Rows[index];
  //Session[Session.SessionID+"uid"] = Label1.Text;
  //System.Web.UI.WebControls.GridViewRow rows = (GridViewRow)((Control)sender).Parent.Parent;
  TextBox tt = ((System.Web.UI.WebControls.TextBox)row.Cells[1].FindControl("TextBox1"));
  string spl = tt.Text;
  int sl = int.Parse(spl);
  string bh = row.Cells[2].Text;
  string name = row.Cells[3].Text;
  string sdj = row.Cells[4].Text;
  double dj = double.Parse(sdj);
  DataRow rr = cart1.NewRow();
  rr["商品编号"] = bh;
  rr["商品名称"] = name;
  rr["单价"] = dj;
  rr["订购数量"] = sl;
  double zj = dj * sl;
  rr["合计"] = zj;
  cart1.Rows.Add(rr);
  Session["shopcart2"] = cart1;
  }  }
这是前一个页面的代码,gridview数据源绑定为session["shopcart2"],可是怎么不显示?pageload 事件里写了databind了,就是不显示??!!

解决方案 »

  1.   

    是这样写的吗?
     GridView1.DataSource=(DataTable)session["shopcart2"];
     GridView1.DataBind();//这句不能少
      

  2.   

    没有绑定数据源,如果是自己创建的列,还需要指定列对应的字段名datafield
      

  3.   

    GridView.datasource=session["shopcart2"];
    GridView.DataBind();
    是这样写的啊
      

  4.   

    前面还要加一个(Datatable)ma?
      

  5.   

    不是自己创建的,是直接的一个GridView控件,设置的自动生成字段。。