We are trying to use the FlyTreeView to implement a very large tree. We have created a custom control derived from FlyTreeView whose datasource is a very large Documentum DB. We are attaching a class to the Tag on a node which is marked Serializable. There are only bools and string properties in it. Most of the time this works just fine, but if a lot of documents are checked in a node sometimes on a button originated postback to do something with the checked nodes it crashes with the following:
Invalid length for a Base-64 char array.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.FormatException: Invalid length for a Base-64 char array.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[FormatException: Invalid length for a Base-64 char array.]
System.Convert.FromBase64String(String s) +0
System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) +72
System.Web.UI.LosFormatter.Deserialize(String input) +11
NineRays.WebControls.Util.Deserialize(String value) +32
NineRays.WebControls.FlyTreeNode..ctor(XmlElement element) +1758
NineRays.WebControls.FlyTreeNode.GetFromXml(XmlNodeList nodes) +168
NineRays.WebControls.FlyTreeNodeCollection.InsertRangeFromXml(Int32 index, String nodesXML) +90
NineRays.WebControls.FlyTreeNodeCollection.AddFromXml(String nodesXML) +43
NineRays.WebControls.FlyTreeView.ApplyStateLog(String stateLog) +1230
NineRays.WebControls.FlyTreeView.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +61
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +723
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3386
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210
I'm looking for a solution. This appears to a mistake in FlyTreeView. Unfortunately there may be no way to duplicate this unless you get a very large tree with a lot of info on each node.