asp.net在子控件数据绑定完成后执行操作

时间:2010-08-17 03:44:55

标签: asp.net events user-controls databound

我有一个usercontrol,它充当容器,可以在其中容纳更多用户控件。

一旦所有子控件都具有数据绑定,我需要执行某些访问检查。

我希望我可以附加到usercontrol.databound事件,但似乎没有。

一旦其他用户控件具有数据绑定,我还必须在父用户控件上执行其他操作。我假设我必须让子控件通知他们有数据绑定的父级,父级需要跟踪哪个有数据绑定,哪些没有,当它们都有数据绑定时,它可以执行它的动作。

2 个答案:

答案 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)