0

我有一个List<SPSection>类型的对象,SPSection是一个自定义类,它包含一个stringList<SPListItem>,SPListItem是一个表示项目的SharePoint对象。如何序列化复杂对象并将它们放入ViewState中?

我想将此存储在ViewState中,但我不知道如何执行此操作。有没有办法将其序列化或将其转换为一些二进制字符串,以便我可以将它放入ViewState。当从ViewState获取数值时,如何将其转换回List<SPSection>

感谢

+0

到目前为止,您是如何尝试序列化它的? – rossisdead 2013-05-09 20:44:04

回答

0

不要这样做。SPListItem实例无法在请求之间保留。它们取决于相应的SPList实例,而实例依次取决于SPWeb + SPSite,它们都自动实例化并通过SPContext提供。

您可以做的是在请求之间保留项目ID。您的自定义类需要是二进制序列化的,即用[Serializable]界面标记。然后,您只需将给定键下的对象存储到视图状态:ViewState["MyObjects"] = myObjects;

+0

我看到你可以在'SPList'上使用'GetDataTable',也许可以筛选特定的项目。此外,对于事件接收器,我发现[本文](http://msdn.microsoft.com/zh-cn/library/gg981880(v = office.14).aspx#UsingEventReceiversInSPFPart2_LoggingEvents)显示在属性包上使用GetEnumerator构建一组'DictionaryEntry'项目。 – PeterX 2013-10-28 01:51:31

相关问题