2012-07-22 50 views
0

kentico 6 我使用的自定義登記的WebPart,並希望我的表單驗證上驗證顯示像這個 - >Kentico系統表表單驗證

工作: 1.紅星旁邊的每個輸入無效 2.以最佳形式提供驗證摘要。

Kentico每feidl只允許一個驗證消息,所以我不知道如何解決這個問題。

謝謝:)

回答

0

您可以自定義表單驗證,或者你可以等待7.0版本)的7.0版默認支持這樣的行爲(用一個漂亮的錯誤摘要和鏈接/錨領域輸入不正確)。因此,如果可以使用Kentico 7.0RC或等待最終版本,我會推薦這種方法,因爲您在6.0中的自定義會過時。

如果你想在6.0實現這一點,請檢查驗證消息,這個例子在Kentico bizforms:

在實例是viewBiz我們正在使用的BizForm的代號。建議在做任何更改之前創建Web部件的克隆(documentation on changing code of standard web parts),並在這些克隆的代碼文件上進行更改。

protected void viewBiz_OnValidationFailed() 
{ 

    ((CMS.ExtendedControls.LocalizedLabel)this.viewBiz.BasicForm.FieldErrorLabels["FirstName"]).Text="Field specific error message"; 

} 

正如你所看到的,你需要從哈希表中獲取錯誤標籤作爲控件,並正確設置它的屬性(這裏是文本)。 要設置主要驗證消息,您可以簡單地使用下面的代碼:

this.viewBiz.ValidationErrorMessage =「Main error message」;

要訪問的字段值進行驗證,請檢查下面的代碼(場被稱爲「姓」的例子):

protected void viewBiz_OnAfterValidate() 
{ 
     this.viewBiz.ValidationErrorMessage = "Main error message"; 
     string find = "FirstName"; 
     Control cl = this.viewBiz.BasicForm.FindControl(find); 

     string toValidate = ""; 

     if (cl != null) 
     { 
      TextBox tb = (TextBox)cl; 
      toValidate = tb.Text.ToString().Trim(); 
     } 
} 

請注意,你必須註冊所有IHE提到的方法bizform定義:

如果中斷BizForm的處理,你可能需要手動保存數據:

viewBiz.BasicForm.SaveData(「redirect.to.this.url」);

PS。我們往往比計算器監控我們的論壇;)

問候, 鮑里斯Pocatko, Kentico