2014-02-11 223 views
0

我的代碼錯誤消息

<asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label> 
<asp:TextBox runat="server" ID="UserName" /> 
<asp:RegularExpressionValidator runat="server" ControlToValidate="UserName" ValidationExpression=".{3,50}" 
    CssClass="field-validation-error" ErrorMessage="The user name field needs to be 3 to 50 characters." /> 
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" 
    CssClass="field-validation-error" ErrorMessage="The user name field is required." /> 

而對於RequiredFieldValidator了以下錯誤消息塊出現了RegularExpressionValidator錯誤消息後,看看下面的截圖,看看我我在說什麼。我想要「用戶名字段是必需的」出現在「用戶名字段需要3到50個字符」的地方。

Range error required error

回答

0

這可以通過使用CSS來完成。

您只需添加style =「margin-left:-300px;」在你的 「的RequiredFieldValidator」

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="UserName" style="margin-left:-300px;" 
    CssClass="field-validation-error" ErrorMessage="The user name field is required." /> 

注:

1)調整 「-300px」 到你需要的長度。

2)這種風格也可以在css class或id中給出。

3)不僅通過使用margin-left,還可以通過在CSS中使用不同的技術來實現此目的。

更多關於CSS:

http://www.w3schools.com/css/

http://html.net/tutorials/css/

+0

我可以知道爲什麼它被低估嗎? – Ajay

+0

我低估了,因爲這是最糟糕的可能的錯誤解決方案之一。讓我們想象這個問題的作者有多個頁面,並且有同樣的問題。可能會出現'300px'不夠或過多的情況。作者最終將得到一組帶有不同內聯頁邊距的內聯樣式,並且當頁面佈局發生變化時,作者將被迫檢查所有頁面並重新計算偏移量。 當涉及到解決樣式問題時,內聯樣式也可以反作用。 –

+0

謝謝亞歷山大manekovskiy.I明確提到,根據所需的長度調整大小(-300px)。我不是指-300px準確。我只是舉例(不是確切的解決方案)。我只是說,這是可能的通過使用CSS 。爲什麼我提到超鏈接學習HTML和CSS。有很多HTML解決上述問題的解決方案,而不是使用asp.net中的典型代碼。請修改解決方案once.till你不滿意。請給我必要的建議修改我希望你現在能理解。感謝你的評論。 – Ajay

0

ASP.NET驗證控件具有屬性Display它定義如何顯示錯誤消息,並且它是如何 「隱藏」 輸入是有效的。在您的情況下,您應該使用Dynamic值進行顯示,因爲它將display: none設置爲有效驗證程序,導致它們不佔用頁面的房地產。

<asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label> 
<asp:TextBox runat="server" ID="UserName" /> 
<asp:RegularExpressionValidator runat="server" Display="Dynamic" ControlToValidate="UserName" ValidationExpression=".{3,50}" 
    CssClass="field-validation-error" ErrorMessage="The user name field needs to be 3 to 50 characters." /> 
<asp:RequiredFieldValidator runat="server" Display="Dynamic" ControlToValidate="UserName" 
    CssClass="field-validation-error" ErrorMessage="The user name field is required." /> 

另外,還要確保你的CSS類field-validation-error未覆蓋displayvisibility CSS屬性。

此外,我會建議使用CompareValidator而不是RegularExpressionValidator來控制用戶輸入的長度。