2011-05-17 62 views
1

我相當新的ASP.NET,但我想驗證一個表單。我有驗證工作,但我想改變它的顯示方式。我使用RequiredFieldValidator控件,該控件生成一個帶有ErrorMessage屬性的span標籤。根據我如何設置的一些屬性,跨度標籤隱藏或內聯CSS顯示(顯示:無,能見度:隱藏,等等)。而不具備驗證返回的跨度,我想有TextBox控件變化的基礎上,驗證的結果的CssClass。我不想在我的標記中的任何位置使用驗證相關的跨度,即使顯示:無。如何更改RequiredFieldValidator控件返回的內容?

這可能嗎?我從哪裏開始做到這一點?

謝謝!

回答

2

你不能改變的RequiredFieldValidator更新就像一個文本框的另一個控件,如果有一個網頁上只會更新本身或的ValidationSummary。

2個選項,你必須讓你的期望的輸出是:

  1. 使用CustomValidator control
  2. Create your own validation server control是能夠更新的CSS類的文本框的

雖然最有可能沒有的這些選項將爲您提供您正在尋找的「純」HTML代碼,而無需任何額外的span或div標籤,只要您願意投入時間編寫JavaScript(或jQuery),它們就會滿足您的其他要求。但是,考慮到可用的替代方案(大多數客戶端只通過某個框架進行驗證),您最好堅持使用ASP.NET驗證,因爲它可以強制在服務器端進行驗證。

第二個選項更具挑戰性,但服務器控件可以在項目中的任何頁面上使用,或者包裝在DLL中以部署在多個項目中。使用CustomValidator時,如果您想複製多個控件上的功能,並且難以維護,則可以進行一些複製和粘貼。

有關如何使用jQuery和自定義服務器控件來獲取所需結果的真實示例,請轉至Folding Chair Depot的結帳頁面(您需要先將商品添加到購物車以獲取那裏)。當您提交表單而未填寫表單時,將爲無效文本框分配新的CSS類,這些類會更改其背景顏色。但是,因爲它們是服務器控件,所以無論JavaScript是否啓用,功能都將起作用。

+0

謝謝! Folding Chair Depot示例幾乎就是我想要實現的。 – 2011-05-19 16:07:25

0

它是更多的工作,但它是可能的的CustomValidator。所以你通過驗證js函數有更多的控制權。

相關問題