Пользовательский элемент управления TextBox и проверка - PullRequest
2 голосов
/ 05 февраля 2009

Я создал пользовательский элемент управления TextBox, который также содержит RequiredFieldValidator. Все работает нормально, но проблема в отображении. Дисплей примерно такой:

[TextBox Control] [Validation Error Message] 

Я хочу, чтобы на экране было что-то вроде этого: (сообщение об ошибке проверки должно быть вверху текстового поля)

[Validation Error Messsage] 
[TextBox Control]

Мой элемент управления наследуется от элемента управления TextBox. Как я могу создать дисплей, как указано выше. Я попытался использовать элемент управления Table и вставить элемент TextBox и Validation в таблицу, но это дало мне некоторую ошибку стека по потоку.

Вот код:

protected override void Render(System.Web.UI.HtmlTextWriter writer) {
    base.Render(writer);

    if(_req != null)
        _req.RenderControl(writer);
}

Ответы [ 2 ]

3 голосов
/ 10 февраля 2009

Ты действительно близок к тому, чтобы сделать это правильно! Попробуйте это:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
    if(_req != null)
        _req.RenderControl(writer);
    base.Render(writer);
}

Это отрендерит элемент проверки перед вашим TextBox, а не после. Если вы хотите изменить внешний вид дальше, возможно, css - это то, что вам нужно.

0 голосов
/ 05 февраля 2009

Вот ужасное решение:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
           if (_req != null)
           {
               writer.Write("<div style='float:top;'>");
               _req.RenderControl(writer);
               writer.Write("</div>");
           }

           base.Render(writer);
        }
...