自定义TextBox控件和验证显示

时间:2009-02-04 22:28:47

标签: c# asp.net custom-controls

我创建了一个自定义TextBox控件,它还包含一个RequiredFieldValidator。一切正常,但问题在于显示。显示是这样的:

[TextBox Control] [Validation Error Message] 

我希望显示如下:(验证错误消息应位于文本框的顶部)

[Validation Error Messsage] 
[TextBox Control]

我的控件继承自TextBox控件。如何创建如上所示的显示。我尝试使用Table控件并在Table中插入TextBox和Validation控件,但它给了我某种堆栈溢出错误。

以下是代码:

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

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

2 个答案:

答案 0 :(得分:3)

你真的很接近做得对!试试这个:

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

这将在TextBox之前而不是之后呈现验证控件。如果你想进一步改变外观,那么可能就是css。

答案 1 :(得分: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);
        }