加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – CompositeControl中的DropDownList是否应该记住所选

发布时间:2020-12-16 09:33:16 所属栏目:asp.Net 来源:网络整理
导读:鉴于以下内容 public class MyControl : CompositeControl{ private DropDownList myList; protected override void CreateChildControls() { base.CreateChildControls(); myList = new DropDownList(); myList.AutoPostBack = true; this.Controls.Add(myL
鉴于以下内容

public class MyControl : CompositeControl
{
    private DropDownList myList;

    protected override void CreateChildControls()
    {
        base.CreateChildControls();

        myList = new DropDownList();
        myList.AutoPostBack = true;
        this.Controls.Add(myList);
        if (!Page.IsPostBack)
        {
            myList.DataSource = MyBLL.SomeCollectionOfItems;
            myList.DataBind();
        }
    }
}

我发现列表中的项目仍然存在,但是当呈现不同的控件然后再次渲染时,最后选择的项目不会保留. (始终选择列表中的第一项)

最后选择的项目应该自动保存在ViewState中,还是我期望太多?

解决方法

我认为这是一个隐藏的ViewState问题.您在CreateChildControls中创建并绑定控件.您应该只在这个地方创建控件.将绑定代码移动到类加载事件并使用EnsureChildControls.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读