回答
要在驗證摘要上添加錯誤消息,您可以使用EnableClientScript ValidationSummary屬性和其他驗證控件。將EnableClientScript設置爲全部爲false:
<asp:ValidationSummary
HeaderText="You must enter a value in the following fields :"
DisplayMode="BulletList"
EnableClientScript="false"
runat="server"/>
爲了突出顯示某個控件,不可能使用當前控件。
但我把我的驗證控件附近的相關控件,我把他們的文本屬性設置爲「*」。然後如果驗證失敗,它會出現在失敗的控件附近。
也許您可以使用自定義驗證程序來突出顯示失敗的控件。但是你應該寫你自己的實現。
添加一個自定義驗證程序並手動將其設置爲IsValid
和ErrorMessage
屬性。排序是這樣的:
<asp:panel ID="ErrorsPanel" runat="server" CssClass="ErrorSummary">
<asp:CustomValidator id="CustomValidator1" runat="server"
Display="None" EnableClientScript="False"></asp:CustomValidator>
<asp:ValidationSummary id="ErrorSummary" runat="server"
HeaderText="Errors occurred:"></asp:ValidationSummary>
</asp:panel>
在後面的代碼:
這裏的一個陷阱是,如果您的驗證摘要控件指定了一個ValidationGroup,那麼您還需要向您的CustomValidator添加一個ValidationGroup屬性,以確保在需要時/顯示錯誤消息。也許只是常識,但它偶爾會把我抓出來。 – 2010-10-28 20:52:20
動態創建CustomValidator控件,並直接將它添加到收藏Page.Validators。
Dim err As New CustomValidator
err.ValidationGroup = "MyGroup"
err.IsValid = False
err.ErrorMessage = "The password is invalid"
Page.Validators.Add(err)
與添加的CustomValidator的標記,這種方法允許你添加任意數量的基於服務器端的業務邏輯的任意錯誤信息。
請注意,您也可以將其添加到直接的頁面,但也有一對夫婦的規律可循:
- 您必須作爲驗證組的控制控件添加到相同的命名容器。
- 如果您不希望驗證消息出現在頁面中的隨機位置,您將不得不將驗證程序添加到特定的容器,否則將需要使用CSS類或樣式對其進行壓縮。
您也可以創建一個custom class and implement IValidator,它使您能夠添加一行代碼的消息,但此方法不支持驗證組。
Per Anders Fjeldstad的建議,這裏有一套方便的擴展方法。
Imports Microsoft.VisualBasic
Imports System.Runtime.CompilerServices
Public Module PageExtensions
<Extension()> _
Public Sub AddValidationError(ByVal p As System.Web.UI.Page, ByVal errorMessage As String)
p.AddValidationError(errorMessage, String.Empty)
End Sub
<Extension()> _
Public Sub AddValidationError(ByVal p As System.Web.UI.Page, ByVal errorMessage As String, ByVal validationGroup As String)
Dim err As New CustomValidator
err.ValidationGroup = validationGroup
err.ErrorMessage = errorMessage
err.IsValid = False
p.Validators.Add(err)
End Sub
End Module
+1用於啓用任意數量的錯誤消息。另外,上面的代碼很容易被分解成System.Web.UI.Page或System.Web.UI.ValidatorCollection的擴展方法,它可以通過類似Page.AddValiationError(「MyValidationGroup」,「Some error消息「) – 2011-06-30 13:52:13
我發現一旦我以這種方式添加了驗證器(並將它們添加到頁面上的控件中,以便我可以控制它們出現的位置),如果我沒有設置」ControlToValidate「屬性,那麼我就可以不會改變使頁面無效的事情 - 所以我再也不能提交頁面。設置該屬性爲我解決了它。 – 2015-09-25 09:19:31
所以您只需創建自定義驗證器並將其添加到頁面的Validator集合中,只要出現這種情況。
CustomValidator cv = new CustomValidator();
if(condition)
{
cv.IsValid = false;
cv.ErrorMessage = "This Catalog Data already exists.";
cv.ValidationGroup = "InputList";
this.Page.Validators.Add(cv);
}
注意:不要忘記指定的ValidationGroup或錯誤信息不會顯示自定義驗證的inspite被添加到您的網頁。而且,如果你確實得到了你的第二個問題的答案(突出顯示文本框),請發佈!
這裏有一個小擴展到好主意,從NightOwl888:
public class ValidationError : CustomValidator
{
public ValidationError(string group, string msg)
: base()
{
base.ValidationGroup = group;
base.ErrorMessage = msg;
base.IsValid = false;
}
}
public static class PageExtensions
{
public static void ErrorMessage(this Page page, string group, string msg)
{
page.Validators.Add(new ValidationError(group, msg));
}
}
每當你想發出一個錯誤信息,只需撥打Page.ErrorMessage
;該機制與他所建議的相同。
- 1. 在回發時,我想向驗證摘要添加消息
- 2. 如何在驗證摘要中添加圖像以及錯誤消息?
- 3. 驗證顯示驗證錯誤消息的摘要
- 4. 將錯誤消息添加到代碼後面的驗證摘要中
- 5. 不同的驗證消息和驗證摘要消息
- 6. 驗證摘要javascript錯誤
- 7. 驗證摘要未拾取組中的錯誤消息
- 8. 未包含在驗證摘要中的RadCaptcha錯誤消息
- 9. 使用Ajax在驗證摘要中顯示錯誤消息
- 10. 驗證摘要未顯示消息框
- 11. JSF 2.0驗證摘要消息
- 12. 驗證摘要消息中的鏈接
- 13. 驗證摘要消息彈出兩次
- 14. MVC 3 unobtrusive jquery驗證 - 如何添加虛擬消息Vallidation摘要
- 15. 錯誤消息不顯示回形針驗證錯誤消息
- 16. 如何添加自定義錯誤消息在Hibernate驗證
- 17. MVC3在錯誤添加字段名稱,以驗證摘要
- 18. JQuery驗證插件 - 如何向Title屬性添加錯誤消息?
- 19. 將驗證摘要添加到網頁
- 20. 驗證摘要中的顯示錯誤如何在驗證摘要中顯示錯誤
- 21. 如何分離驗證錯誤消息?
- 22. 使用jquery我如何驗證單個元素並在驗證摘要中顯示相關錯誤消息
- 23. 如何在驗證消息前的驗證摘要中獲取錯誤字段的ID
- 24. 驗證錯誤消息
- 25. angularjs - 驗證錯誤消息
- 26. 驗證錯誤消息
- 27. jQuery驗證錯誤消息
- 28. Rails驗證消息錯誤?
- 29. CakePHP驗證錯誤消息
- 30. jQuery驗證插件錯誤摘要
我想通過代碼隱藏在postack上添加錯誤消息。 – Blankman 2009-04-22 15:44:38