ASP.Net自定义控件渲染错误

时间:2011-05-27 16:18:52

标签: asp.net controls custom-controls

我正在尝试创建自定义控件,渲染方法如下所示。

我在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);
        }
    }

1 个答案:

答案 0 :(得分:1)

您通常不希望在渲染过程中添加控件。您目前这样做的方式将确保您的点击处理程序永远不会被调用。

我猜测你收到错误的原因是控件没有被添加到控件集合中。

我的建议是将逻辑移动到更早的事件,也许是onload,然后你不需要覆盖Render方法。