DataView dv=new DataView();
ds=........
dv=ds.Tables [0].DefaultView ;
this.ViewState ["dv"]=dv;出错如下:
======================================================
类型“System.Data.DataView”必须标记为 Serializable 或者具有 ReferenceConverter 以外的 TypeConverter,才能被放置在视图状态中。
==============================如果我去掉 this.ViewState ["dv"]=dv;这句,就正常,难道viewstate不能记住dv的吗?

解决方案 »

  1.   

    是的DataView不能被串行化,所以不能保存在ViewState,ViewState在WEB中保存为字符型的.
    可以使用Session来保存
      

  2.   

    this.ViewState ["dv"]=dv;
    改为this.ViewState ["ds"]=ds; ds是你的DataSet
      

  3.   

    楼上说的对,你可以将ds保存到viewstate中,取值时,再转换回ds。
      

  4.   

    可序列化或者实现了TypeConverter的对象才可以在ViewState中保存
    你可以用Session保存DataView
      

  5.   

    哈哈自己搞定了this.ViewState["sort"]=dv.sortsession实在太耗资源,且会过期,所以还是用viewstate了