Событие щелчка не срабатывает при использовании пользовательского элемента управления кнопки - PullRequest
0 голосов
/ 26 августа 2011

Я сделал пользовательское управление кнопками, но мне чего-то не хватает, потому что я не могу заставить его работать правильно.

Кнопка работает, если метод рендеринга выглядит следующим образом:

protected override void Render(HtmlTextWriter writer)
{
  base.Render(writer);
}

Но когда я изменяю код на это:

protected override void Render(HtmlTextWriter writer)
    {
        writer.AddAttribute(HtmlTextWriterAttribute.Class, css);
        writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID);
        writer.AddAttribute(HtmlTextWriterAttribute.Name, this.ID);
        writer.RenderBeginTag(HtmlTextWriterTag.Button);
        writer.RenderBeginTag(HtmlTextWriterTag.Span);
        writer.RenderBeginTag(HtmlTextWriterTag.Span);
        writer.RenderBeginTag(HtmlTextWriterTag.Span);
        writer.Write(base.Text);
        writer.RenderEndTag();
        writer.RenderEndTag();
        writer.RenderEndTag();
        writer.RenderEndTag();
    }

Он просто загружает ту же страницу, где была нажата кнопка, и больше ничего не происходит.

Так что я не делаю, что делает base.Render (запись)? И есть ли что-нибудь еще в этих пользовательских кнопках управления, что должно быть сделано, или я могу сделать это лучше?

Вывод кнопок должен быть примерно таким:

<button>
  <span>
    <span>
      <span>
        Title
      </span>
    </span>
  </span>
</button>

1 Ответ

1 голос
/ 26 августа 2011

Вы должны вызвать базовый метод ...

base.Render(writer);

Как показано ниже ↓

  protected override void Render(HtmlTextWriter writer)
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Class, css);
            writer.AddAttribute(HtmlTextWriterAttribute.Id, this.UniqueID);
            writer.AddAttribute(HtmlTextWriterAttribute.Name, this.ID);
            writer.RenderBeginTag(HtmlTextWriterTag.Button);
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.RenderBeginTag(HtmlTextWriterTag.Span);
            writer.Write(base.Text);
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();
            writer.RenderEndTag();

       base.Render(writer);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...