本帖最后由 j_hunter 于 2010-02-05 10:09:28 编辑

解决方案 »

  1.   

    List <object> lst = new List <object>(); 可以换成
    List <DataTable> lst = new List <DataTable>(); 
      

  2.   

    public void OnSaveDate(List <object> List) 
        { 
            ViewState["Data"] = List; 
        }     public List <object> OnGetData() 
        { 
            return ViewState["Data"] as List <object>; 
        } 这两个有什么用?
      

  3.   

    他这两个方法就等于一个成员属性的 get;set
    其实看了他这代码,好象不用转换成集合啊,直接用datatable扔给repreater也行的,跟扔不扔集合没关系
      

  4.   


    一个是把集合添加到viewstate  一个是以集合的形式返回viewstate中的数据 
    我试了你说的该成datatable 不行, 我调试了下 主要是当中viewstate中不能添加多项
      

  5.   

    你要添加可以这样啊
        public void SaveGoods(object sender, EventArgs e) 
        { 
            Button btn = (Button)sender; 
            string b = btn.CommandName; 
            string strsql = "select top 3 * from X where ID=" + b; 
            DataSet ds = Db.Query(strsql); 
            List <DataTable> lst;
            if(ViewState["Data"]!=null)
            {
               lst =ViewState["Data"] as List<DataTable>;
               lst.Add(ds.Tables[0]);       }
            else
            {
               lst = new List <DataTable>(); 
               lst.Add(ds.Tables[0]); 
            }
            ViewState["Data"]=lst;
            //TODO:your code    }
      

  6.   


    因为我模仿的是一个网站 你可以看下那个原站 http://www.diycg.com/dipz.asp  我是要把那个repeater中的值传到同页面的另一个地方 你说的也对 是作为成员属性的 因为要对添加进去的数据读取 计算,
      

  7.   

    汗颜啊,List <object> lst = new List <object>(); 
    泛型让你用成这样已经失去他的意义了。
    不过问题不在于此
    建议你定义一个List<DataRow> list = new List(DataRow)();
    或者定义一个DataTable都行的,然后放到ViewState里。
      

  8.   


    按寂寞sf兄的方法以及解决问题了 放了datatable, datarow我试过 好像最后不好操作
      

  9.   


    再问一句 那修改已经添加到ViewState中的某行数据的其中一个字段?