我有一个usercontrol,它充当容器,可以在其中容纳更多用户控件。
一旦所有子控件都具有数据绑定,我需要执行某些访问检查。
我希望我可以附加到usercontrol.databound事件,但似乎没有。
一旦其他用户控件具有数据绑定,我还必须在父用户控件上执行其他操作。我假设我必须让子控件通知他们有数据绑定的父级,父级需要跟踪哪个有数据绑定,哪些没有,当它们都有数据绑定时,它可以执行它的动作。
答案 0 :(得分:0)
您无需让子控件通知父级。看看ASP.Net Page :Life Cycle。您需要将代码放在PreRender事件的容器用户控件中。这在回发事件之后执行。
答案 1 :(得分:-1)
基于ASP.net Page Life Cycle Events文章,我使用了这个:
protected void Page_PreRenderComplete(object sender, EventArgs e)
{
if (!IsPostBack) //only at 1st load
UpdateSelection();
}
protected void UpdateSelection()
{
UpdateSelection(listItems.SelectedValue);
}
protected void listItems_SelectedIndexChanged(object sender, EventArgs e)
{
UpdateSelection();
}
就我而言,UpdateSelection正在从下拉列表中选择的文件中加载XML数据(在开始时指向索引0)并且需要页面上的一些CheckBoxLists首先从其他XML文件中获取它们的项目以便它们允许代码根据XML数据检查它们上的项目
从那时起,UpdateSelection刚刚在下拉列表中调用SelectedIndexChanged事件(那些事情是PostBacks所以在PreRenderComplete中我忽略它们以避免两次执行UpdateSelection)