读书人

ViewState中寄存复杂对象

发布时间: 2011-12-21 23:56:01 作者: rapoo

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.

读书人网 >asp.net

热点推荐