1

我有一个gridview,我在其中动态填充下拉列表。这些下拉列表中填充了来自数据库的数据,因此 gridview 的列数和行数以及下拉控件的数量是事先不知道的。(我正在使用继承 ITemplate 的 ItemTemplate 类来创建动态下拉列)。

我能够正确显示数据,但是当我尝试将更改的 gridview 值保存到数据库时出现问题。

我在gridview 外面有一个按钮,这样当用户点击它时,任何保存的数据都应该在数据库中更新。但是在按钮单击事件中,我无法访问下拉列表的值,因为动态内容在回发和任何其他控制事件中丢失。

有人可以指导我解决这个问题吗?

提前致谢

4

2 回答 2

0

研究ASP .NET 页面生命周期,您会发现您需要创建动态控件,OnInit其中的事件是 for PreInit,否则它们将不可用Page_Load等。

于 2013-02-22T11:28:39.977 回答
0

您必须在 OnInit 事件中创建动态控件,因为当 OnLoad 命中时,视图状态已全部填充,并且您新创建的控件不会使用来自视图状态的数据进行更新。

这是一篇关于 viewstate 的好文章:

http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx

于 2013-02-22T11:29:25.013 回答