【问题标题】:ASP.Net Custom Control Render errorASP.Net 自定义控件渲染错误
【发布时间】:2011-05-27 16:18:51
【问题描述】:

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

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

【问题讨论】:

  • 你已经完成了吗? Render 方法接收到Writer 对象是否正确实例化?

标签: asp.net controls custom-controls


【解决方案1】:

您通常不想在渲染期间添加控件。您当前如何执行此操作将确保您的点击处理程序永远不会被调用。

我猜你为什么会收到错误是控件尚未添加到控件集合中。

我的建议是将逻辑移至更早的事件,也许是 onload,那时您不需要重写 Render 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多