如何将 DataView 放到 ViewState 视图状态里保存?

kb1024 2003-08-19 06:38:28
请问,如何将 DataView 放到 ViewState 视图状态里保存?

我试过:

写:ViewState.Add("DataView",myDataSet.Tables[0].DefaultView);
读:DataView myDataView = (DataView)ViewState["DataView"];

得到的错误是:

The type 'System.Data.DataView' must be marked as Serializable or have a TypeConverter other than ReferenceConverter to be put in viewstate.
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolve 2003-08-20
  • 打赏
  • 举报
回复
楼上都说了。
只有实现ISerializable才能放在viewstate中.dataset,datatable都行。
自定义的对象实现ISerializable或者是使用<SerializableAttribute>也行
wacle 2003-08-20
  • 打赏
  • 举报
回复
xxdneu(xxd)说的是对的.必须是能够序列化的对象才可以放到ViewState中.
xxdneu 2003-08-20
  • 打赏
  • 举报
回复
需要序列化吧
ViewState其实是放到客户端里的hidden控件的,所以理论上只能保存字符串,如果你想保存object得需要自定义TypeConverter转化成字符串。DataSet可以保存可能是因为DataSet是以Xml保存的,而xml就是一串字符,所以可以保存。
chnking 2003-08-20
  • 打赏
  • 举报
回复
datatable是可序列化的,你可以把这个dataview对应的那个datatable放到ViewState 中的.
chnking 2003-08-20
  • 打赏
  • 举报
回复
如果一个类型是可序列化的或具有为其定义的 TypeConverter,则该类型可以存留在 ViewState 中.

dataset是可序列化的,故可以保存在ViewState 中.
dataview是不可序列化的,并且也没为其定义的 TypeConverter,所以,dataview不能保存在ViewState 中.
foxxiap 2003-08-20
  • 打赏
  • 举报
回复
ViewState["DataView"]=myDataSet.Tables[0].DefaultView;

DataView myDataView = (DataView)ViewState["DataView"];
LineCorner 2003-08-20
  • 打赏
  • 举报
回复
viewstate("Dtv")=(dataview)
kb1024 2003-08-20
  • 打赏
  • 举报
回复
试过保存 DataSet ,没有问题,多谢 kysyuan 兄!

可是为什么 DataView 不可以呢?
kysyuan 2003-08-19
  • 打赏
  • 举报
回复
DataView不能这么写,你可以将DataSet这么写的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧