2010-08-12 52 views
2

這是我的ASP.NET代碼。簡單。它有一個與必填字段驗證器和提交按鈕關聯的文本框。ASP.NET驗證器設置Display =「Dynamic」時出現問題

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
     ControlToValidate="TextBox1" Display="Dynamic" 
     ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator> 
    <asp:Button ID="Button1" runat="server" Text="Click Me" /> 

執行以下操作

  1. 點擊Button1的

  2. 的RequiredFieldValidator將顯示

  3. 鍵入文本框

  4. 一些文本使用鼠標(無標籤請)。並點擊按鈕,你可以看到你的頁面沒有「POSTBACK」,只有驗證被清除。你需要

再次點擊提交表單按鈕。

這似乎是微軟的錯誤設置該屬性顯示=「Dynmaic」的時候,是有一個簡單的解決辦法,而不改變了

這可預期的行爲?我無法在任何地方找到解決方案。

回答

6

您的頁面沒有提交,因爲當您想要單擊它時,該按鈕在鼠標下移開。這是因爲它獲得了焦點,Validator-ErrorMessage消失在左邊。 如果您在工作按鈕前插入<br/>

通常情況下,我使用*爲文本並使用ValidationSummary顯示的ErrorMessage(S):

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
     ControlToValidate="TextBox1" Display="Dynamic" 
     ErrorMessage="This is the Errormessage" Text="*"></asp:RequiredFieldValidator> 
<asp:Button ID="Button1" runat="server" Text="Submit" /> 
<asp:ValidationSummary ID="ValidationSummary1" runat="server" /> 

或者,如果使用ASP.Net Ajax的,你可以用漂亮的控件,如ValidatorCalloutExtender

+0

您好,感謝您的回覆。添加一箇中斷標籤幫助。很高興看到有價值的答覆。現在,我需要在項目代碼中嘗試類似的東西,在這種情況下我可能會遇到一些問題 – sivakumar 2010-08-13 02:42:28

+0

如果在驗證程序之後無法放置按鈕,則可以使用css樣式min-height來設置大小桌子外面的按鈕,它不會移動。 :) – 2016-08-04 03:27:23