【发布时间】:2010-09-21 21:01:40
【问题描述】:
我在具有多种状态/模式的用户控件上有一个自定义属性。如果在父页面中设置了此属性:我希望我的控件自动更新。在页面加载中使用该属性不起作用,因为它没有启动。
我可以想象 3 种方法来做到这一点:
- 在属性上,我可以添加一个调用 this.DataBind() 的代码块。
- 我可以通过重写虚拟方法 DataBind 来添加代码。
- 我可以创建一个公共专有的更新方法。
我想就一般最佳做法提供任何意见。更重要的是,我选择了重写虚拟方法 DataBind。我的伪代码是这样的:
public override void DataBind()
{
if (SpecialMode)
{
.. load from database
}
base.DataBind()
}
我对 base.DataBind() 的排序感兴趣。我已经看到它通常放在第一位,但在我从数据库加载数据之后:我需要进行数据绑定以获取要显示的数据。
我们将不胜感激任何对这些考虑的意见。
要明确:
这个控件是一个投票小部件。它通常会从 Page_Load 事件中搜索并加载要显示的轮询。但是,它也有一个报告模式,该模式允许嵌入控件的页面更改要显示的轮询的 Id。此属性不会在 Page_Load 中启动。好的,这个混乱的一部分是我有一个对象的属性,我还有一个 ViewState 的重复属性,但只有 Id。
【问题讨论】:
标签: asp.net data-binding user-controls