我有一个gridview,我在其中动态填充下拉列表。这些下拉列表中填充了数据库中的数据,因此,gridview的列数和行数以及下拉控件数预先未知。 (我正在使用继承ITemplate的ItemTemplate类来创建动态下拉列。)
我能够正确显示数据,但当我尝试将gridview的更改值保存到数据库时出现问题。
我在gridview外面有一个按钮,这样当用户点击它时,任何保存的数据都应该在数据库中更新。但是在按钮单击事件中,我无法访问下拉列表的值,因为动态内容在回发和任何其他控件事件上都会丢失。
有人可以指导我找到解决方案吗?
提前致谢
答案 0 :(得分:0)
研究ASP .NET page life-cycle,您会发现需要在 OnInit
中创建动态控件,这是 PreInit
的事件,否则它们将无法在 Page_Load
等
答案 1 :(得分:0)
您必须在OnInit事件中创建动态控件,因为当OnLoad命中时,viewstate已经全部填充,并且您新创建的控件未使用来自viewstate的数据进行更新。
这是一篇关于viewstate的好文章:
http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx