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

相關問題