我遇到了问题,想知道是否有人可以帮助我。
我正在创建一个包含一些控件的表,我想在每个回发中保存所有控件值。由于控件刚刚在page_load之后定义,我无法通过这种方式解决我的问题:
object o;
protected void Page_Load(object sender, EventArgs e)
{
o = createObject();
Create_Table();
if (Page.IsPostBack)
Save_Data();
}
我以为我可以在每个回发事件开始时执行Save_Data(),但我认为这应该是解决问题的更好方法。
感谢。
答案 0 :(得分:1)
既然您希望它在页面级别,为什么不使用ViewState?由于o似乎总是设置相同的数据,因此可能不需要将其设置多一次,但如果你真的想要,你可以删除if if backback的东西......
protected object o
{
get {
return ViewState["o"];
}
set {
ViewState["o"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) { o = createObject(); }
Create_Table();
if (Page.IsPostBack)
Save_Data();
}
答案 1 :(得分:0)
回发完成后,您的变量“o”将不包含原始值。这是因为每个请求都会在服务器上创建一个新的页面对象,并且您的成员变量值将丢失。最好使用内置的“Session”属性在请求之间保存数据。
请参阅我的回答here