UserControl DropDownList丢失其选择

时间:2014-05-13 17:21:09

标签: c# asp.net drop-down-menu user-controls dynamic-usercontrols

我有一个带有AutoPostBack = true的DropDownList的用户控件,我也有一个aspx页面来显示这个控件。 我在页面的OnInit方法中重新创建用户控件

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    var list = (List<Control>)Session[Controls];
    if (list != null)
    {
        foreach (var control in list)
        {
          var uc = (Control)LoadControl(ControlPath);
          uc.SetDropDownState(control.state);
          PlaceHolderQuestion.Controls.Add(uc);
         }
    }
}

因此,在重新创建时我正在恢复DropDown选择,它第一次起作用,但是当我再次更改选择时,OnSelectedIndexChanged事件不会触发,这是显而易见的,因为我首先在OnInit中恢复DropDown选择,因此没有OnSelectedIndexChanged事件,因为什么都没有改变,你能建议一些解决方法吗?

更新

var uc =(Control)LoadControl(ControlPath); 需要保持用户控制事件

1 个答案:

答案 0 :(得分:0)

经过深入研究,我发现问题出在SelectedIndexChanged事件逻辑中。 我正在使用“间接订阅”方法在我的页面逻辑中处理它, 欲了解更多信息,请查看 Indirect Subscription Approach

最初我在处理程序内部重新加载控件但是因为我在Page_Load方法中执行它所以不需要它,所以我需要做的就是更新PlaceHolder控件列表中的控件。 我希望很清楚,如果没有,请询​​问,我会提供更多说明。