【问题标题】:UserControl DropDownList loses its selectionUserControl DropDownList 失去选择
【发布时间】:2014-05-13 17:21:08
【问题描述】:

我有一个带有 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); 需要保留用户控制事件

【问题讨论】:

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


    【解决方案1】:

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

    最初我是在处理程序中重新加载控件,但这不是必需的,因为我也在 Page_Load 方法中执行此操作,所以我需要做的就是更新我的 PlaceHolder 控件列表中的控件。 我希望清楚,如果没有,请询​​问,我会提供更多描述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2011-11-25
      • 1970-01-01
      • 2011-08-09
      相关资源
      最近更新 更多