ASP.Net自定义控件呈现错误

问题描述

| 我正在尝试创建一个自定义控件,并且render方法如下所示。 我在bulletList.RenderControl(Writer);上收到一个“对象引用未设置为对象的实例”错误;线。 有任何想法吗?
    protected override void Render(HtmlTextWriter Writer)
    {
        if (TermSetList != null && TermSetList.Count > 0)
        {
            BulletedList bulletList = new BulletedList();
            bulletList.Click += new BulletedListEventHandler(BulletListItem_Click);
            bulletList.displayMode = BulletedListdisplayMode.LinkButton;
            bulletList.CssClass = \"tabs\";

            foreach (keyvaluePair<String,String> item in TermSetList)
            {
                ListItem listItem = new ListItem();

                listItem.Text = item.Key;
                listItem.Value = item.Value;

                bulletList.Items.Add(listItem);
            }

            if (!this.Page.IsPostBack)
            {
                bulletList.Items[0].Selected = true;
            }

            bulletList.RenderControl(Writer);

            base.Render(Writer);
        }
    }
    

解决方法

        通常,您不想在渲染过程中添加控件。您当前的操作方式将确保您的点击处理程序永远不会被调用。 我对为什么会收到错误的猜测是,该控件尚未添加到控件集合中。 我的建议是将逻辑移至更早的事件,也许是onload,那么您就不必重写Render方法。