2011-04-24 55 views
0

Page_Load中,我创建了动态控件(带有复选框的表格)。复选框的数量取决于我从数据库中检索的一些信息。我不想在每次回发时连接到数据库。什么是保存所需变量的最佳方法?也许我需要将它们存储在HiddenFieldPage_Load中的数据库请求

回答

0

它们存储在视图状态中,这是一个hiddenField或多或少存储(如视图状态本身被保存到了hiddenfield)

viewstate @ msdn

+0

只是好奇。如果控制被创建一次(甚至是动态的),那岂不是在默认情况下在ViewState中可用的(没有做任何事情)?如果是这样,我认为他真正在做的是一次又一次地重新制定控制,应该停止。我的建议是只是抑制IsPostback条件后面的控件创建,它应该没问题。 – 2011-04-25 08:46:13

+0

属性存储在页面的视图状态中,是的......但是您需要重新创建控件,以获取关键字(也就是控制ID)来访问它的属性。并且,不是在每次回发之后重新创建控件的正确方法。 – 2011-04-25 17:08:11

0

建议从数据库中获取的变量值在这种情况下。但是,如果您选择不遵循的建议,你仍然可以将这些值,如果它在你的系统正常存储为会话状态变量...

如果您运行的选项,你可以考虑使用ViewState的变量来存储你的变量。


阅读State Variables