Пользовательский элемент управления TextBox и проверка

2

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

[TextBox Control] [Validation Error Message] 

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

[Validation Error Messsage] 
[TextBox Control]

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

Вот код:

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

    if(_req != null)
        _req.RenderControl(writer);
}
  • 0
    ValidationErrorMessage должно быть в верхней части TextBox!
  • 0
    Можете ли вы прикрепить код из вашего метода Render?
Показать ещё 3 комментария
Теги:
custom-controls

2 ответа

3
Лучший ответ

Вы действительно близко к этому! Попробуйте следующее:

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

Это сделает контроль проверки перед вашим TextBox, а не потом. Если вы хотите изменить внешний вид, тогда css, вероятно, будет идти.

0

Вот уродливое решение:

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);
        }
  • 0
    технически поплавок на самом деле ничего не делает. Это работает потому, что вы вызываете base.Render после _req.RenderControl, а не раньше.
  • 0
    причина, по которой он отображается сверху, заключается в том, что по умолчанию для div используется display: block;
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню