ViewState中存放复杂对象
namespace Smanage.cs
{
//类B
[SerializableAttribute]
public class ColumnProperty
{
public ColumnProperty(string str_column,string str_type,string str_memo,string str_dropSql,string str_dropValue,string str_dropText,string[] str_enum,bool display,bool b_Readonly)
{
}
}
//类A
[SerializableAttribute]
public class BaseDataSet:System.Data.DataSet
{
public System.Collections.ArrayList ColumnPropertyList;//类B的集合
public void AddColumnPropertyList(ColumnProperty col)
{
ColumnPropertyList.Add(col);
}
public BaseDataSet(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
}
//在网页中的应用()
public class Test
{
private BaseDataSet ety
{
get
{
return (BaseDataSet)ViewState[ "ety "];
}
set
{
ViewState[ "ety "]=value;
}
}
private void search()
{
//ety=....//给ety赋值
}
private void update()
{
//使用ety.ColumnPropertyList则无法取出//
}
}
}
------解决方案--------------------取出A后B丢失了是什么意思?
是取出A后得不到b的值吗?
把b的值存储在a中怎么会丢失?
你看一下b的值是否存储到a中了?
------解决方案--------------------你调用AddColumnPropertyList了吗?
------解决方案--------------------寸了不可能是空的撒.
------解决方案--------------------首先,一项原则: 不在 ViewState 存储复杂大对象
具体如何,回来填饱肚皮,回来看
------解决方案--------------------依然看不懂
------解决方案--------------------private BaseDataSet ety
========================
类的属性为何要用private,请改为public BaseDataSet ety.