DataView不能这么写,你可以将DataSet这么写的

解决方案 »

  1.   

    试过保存 DataSet ,没有问题,多谢 kysyuan 兄!可是为什么 DataView 不可以呢?
      

  2.   

    ViewState["DataView"]=myDataSet.Tables[0].DefaultView;DataView myDataView = (DataView)ViewState["DataView"];
      

  3.   

    如果一个类型是可序列化的或具有为其定义的 TypeConverter,则该类型可以存留在 ViewState 中.dataset是可序列化的,故可以保存在ViewState 中.
    dataview是不可序列化的,并且也没为其定义的 TypeConverter,所以,dataview不能保存在ViewState 中.
      

  4.   

    datatable是可序列化的,你可以把这个dataview对应的那个datatable放到ViewState 中的.
      

  5.   

    需要序列化吧
    ViewState其实是放到客户端里的hidden控件的,所以理论上只能保存字符串,如果你想保存object得需要自定义TypeConverter转化成字符串。DataSet可以保存可能是因为DataSet是以Xml保存的,而xml就是一串字符,所以可以保存。
      

  6.   

    xxdneu(xxd)说的是对的.必须是能够序列化的对象才可以放到ViewState中.
      

  7.   

    楼上都说了。
    只有实现ISerializable才能放在viewstate中.dataset,datatable都行。
    自定义的对象实现ISerializable或者是使用<SerializableAttribute>也行