我在ASP.NET 2.0 Web表单上有一个转发器控件。
据我了解,所有页面的数据绑定控件都会在Page_Load
和Page_PreRender
事件之间的某处触发绑定事件。
但是,我的转发器的ItemDataBound
事件似乎发生在PreRender
事件之后。
这是怎么回事?有什么方法可以在所有ItemDataBound
事件被解雇后访问页面控件?
更新
Repeater在转发器控件中使用带有ObjectDataSource
声明集的DataSourceID
。
在页面生命周期中,DataSource ID或对象根本不会被修改。
答案 0 :(得分:7)
声明性数据绑定(通过DataSourceID属性指定的数据源)发生在PreRender事件之后。您正在观察的行为是设计的。如果这不是你需要的,你应该明确地数据控制你的控件 - 只需调用它的DataBind方法。
答案 1 :(得分:1)
您是否在代码隐藏文件中专门绑定了转发器(myRepeater.DataBind();)(例如在Page_Load()事件中)?
您是否检查过ASP.NET事件生命周期?很抱歉,如果您已经知道这一点,以防万一:http://msdn.microsoft.com/en-us/library/ms178472.aspx
希望它有所帮助。
里卡多。
答案 2 :(得分:1)
以下博文中还有关于转发器事件的好帖子:
答案 3 :(得分:0)
我认为我有类似的情况,我的选择是强制控件绑定自己,通过调用EnsureChildControls或类似的方法。