ASP.Net Custom Control ошибка рендеринга - PullRequest
0 голосов
/ 27 мая 2011

Я пытаюсь создать пользовательский элемент управления, и метод рендеринга показан ниже.

Я получаю ошибку «Ссылка на объект не установлен на экземпляр объекта» в 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 Ответ

1 голос
/ 27 мая 2011

Обычно вы не хотите добавлять элементы управления во время рендеринга. То, как вы сейчас это делаете, гарантирует, что ваш обработчик кликов никогда не будет вызван.

Мое предположение относительно того, почему вы получаете ошибку, состоит в том, что элемент управления не был добавлен в коллекцию элементов управления.

Мое предложение состоит в том, чтобы переместить логику в более раннее событие, возможно onload, тогда вам не нужно будет переопределять метод Render.

...