补充一下,程序结构是这样的:两个页面:a.aspx, b.aspx·a.aspx:
DataGrid dgA;
DataTable dt;
把 dgA 中的 CheckBox 状态写入到 dt 中的一列(bool),然后 Session.Add( "dtA", dt );
Redirect( "b.aspx" );·b.aspx:
DataTable dt = (DataTable)Session.Add[ "dtA" ];DataGrid dg;
dg.DataSource = new DataView( dt );
dg.DataBind();
dg 属性都是用的默认的,然后就出问题了 T_T

解决方案 »

  1.   

    ·b.aspx:
    DataTable dt = (DataTable)Session.Add[ "dtA" ];
    ======>
    DataTable dt = (DataTable)Session[ "dtA" ];
      

  2.   

    dt.Rows.Count = 13; dg.Items.Count = 15
    一个记录数,一个是datagrids的item多出来的两个包括表头,和表尾
      

  3.   

    两个页面的 dt 是一样的,我把每一行的每一个元素都 ToString() 显示是一样。“zhanqiangz(闲云野鹤) 建议过滤后重新绑定”,请问如何过滤?
      

  4.   

    不包括 Header 和 Footer,Item_Bound 事件发生了 17 次。多出来的两行是 dt 中某两行的复制。
      

  5.   

    已经可以解决了,问题应该出在 dt 上。我新建了一个 dt1,然后把 dt 中的每个元素附值到 dt1 中,再绑定 dt1 就对了。相当于一个过滤操作吧。但是问题是出在对 dt 元素的一个循环附值(把 CheckBox 的状态写入到 dt 中的一列)语句上,把这条附值语句注释掉就没有错误。而且附值后把 dt 中的元素值取出来看,发现附值操作是正确的,但是绑定以后 dg 中显示的就不正确,不知道是什么原因导致的,大家帮帮忙呀,郁闷!!!!