自定义ASP。NET服务器端控件,关于视图保存的问题,急!!

luxel 2004-09-30 03:30:54
自己开发的服务器端控件 CustomControl
public class CustomControl : WebControl
{
public MyClass Class
{
get { return (MyClass) ViewState["Class"];}
}
public CustomControl
{
ViewState["Class"] = new MyClass();
}
}
[TypeConverter(typeof(MyClassConverter))]
[Serializable()]
public MyClass class // 此类已经实现了Converter,并且能被序列化
{
}

可是,在往返过程中,这个属性的状态无法被保存下来,其他的string 属性的状态可以正常保存
现在这个问题十万火急,而且思路有点乱,哪位高人能帮忙指点迷津,或者说说在写这种要保存在视图里的类的时候的注意问题,帮忙理一下思路也好呀!!!!!(由于代码太多,所以没能贴上来)
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
famousun 2004-09-30
  • 打赏
  • 举报
回复
呵呵,我是使用成功后才推荐给大家底
微启子 2004-09-30
  • 打赏
  • 举报
回复
顶顶顶
savagewang1978 2004-09-30
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3328/3328701.xml?temp=.5182611
happyjun2000 2004-09-30
  • 打赏
  • 举报
回复
如何将自定义的类保存到viewstate中?

一定要将实例序列化和将其反序列才能实现存放到viewstate中
这个就要用一个特殊的构造函数来实现
看看这个类:(转自八卦小子在

http://community.csdn.net/Expert/topic/3328/3328701.xml?temp=.9649469 的回

帖)
[Serializable]
public class MyObject : ISerializable
{
public int n1;
public int n2;
public String str;

public MyObject()
{
}

protected MyObject(SerializationInfo info, StreamingContext context)
{
n1 = info.GetInt32("i");
n2 = info.GetInt32("j");
str = info.GetString("k");
}

public virtual void GetObjectData(SerializationInfo info,
StreamingContext context)
{
info.AddValue("i", n1);
info.AddValue("j", n2);
info.AddValue("k", str);
}
}
kongdir 2004-09-30
  • 打赏
  • 举报
回复
你在控件的构造函数里实例化了一个MyClass,这是在ASP.NET调用控件的TrackViewState函数之前的做的,所以MyClass的数据不会保存到页面的__ViewState域中。 你试试给Class属性加一个set器,然后在页面的PageLoad函数里设置这个属性。
famousun 2004-09-30
  • 打赏
  • 举报
回复
是不是没有实现反序列化?
http://community.csdn.net/Expert/topic/3328/3328701.xml?temp=.5182611

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧