页面回发时如何持久化类对象? [英] How to persist a class object when page PostBack?

查看:65
本文介绍了页面回发时如何持久化类对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我已经在UserControl.ascx文件后面的代码中创建了一个页面UserControl.ascx,并创建了一个MyClass.cs类的对象,
像这样:

Hi,
I have created a page UserControl.ascx, in Code behind file of UserControl.ascx and I have created an object of a class MyClass.cs,
Like this:

if(!Page.IsPostback) {
objMyClass= new MyClass();
}


但是,当我单击UserControl.ascx页面的按钮并尝试访问objMyClass对象时,它设置为null,因此如何在页面回发时持久保存MyClass对象?

还有一件事是MyClass也可以创建其他一些类对象.

因此,我将MyClass设置为Serializable,并使用ViewState保持对象不变,但这会导致错误
像这样:
UserControl未标记为可序列化.


因此,我已将UserControl设置为可序列化的,但问题仍然是
来.
有人可以建议我正确的解决方法吗?


But when I click on button of UserControl.ascx page and try to access objMyClass object then it set as null, so how to persist MyClass object when page PostBack?

One more thing is that MyClass is also resposnsible to create some other class object also.

So I have made MyClass Serializable and I have used ViewState to keep my objet persist, but it give the error
like this:
UserControl is not marked as serializable.


So I have made my UserControl as Serializable, but the problem is still
coming.
Can any one suggest me correct solution?

推荐答案

嗨 阿米特,

您可以在回发期间使用视图状态持久化类对象.

Hi Amit,

You can persist class object using view state during post back.

if(!Page.IsPostback) {
objMyClass= new MyClass();

ViewState["myclass"] = objMyClass;
}


public void button_click()
{
//Access value from viewstate
objMyClass= new MyClass();
objMyClass = (MyClass) ViewState["myclass"];
}




如有任何疑问,请让我知道.

如果有帮助,请提供"投票",如果这是正确的答案,请提供"接受答案".:rose:

谢谢,
Imdadhusen




Please do let me know, if you have any doubt.

Please provide "Vote" if this would be helpful, and make "Accept Answer" if this would be correct answer.:rose:

Thanks,
Imdadhusen


是否要保留用户控件本身?不应这样做,您不要将UserControl标记为可序列化的.您保留控件重新创建自身所需的数据.

您了解在视图状态中放置的内容越多,在与客户端之间进行流传输时,页面将越大?具有多个子对象的类通常不存储在viewstate中.
Are trying to persist the user control itself? This should not be done, you don''t mark an UserControl as serializable. You persist the data that is necessary for the control to recreate itself.

Do you understand the more you place in viewstate the larger your page will be when streamed to and from the client? A class with multiple child objects is usually not stored in viewstate.


这篇关于页面回发时如何持久化类对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆