0

kentico 6 カスタム登録 Web パーツを使用しており、フォームの検証を次のように機能させたい - >

on validation show: 1. 無効な各入力の横にある赤い星 2. フォームの上部に検証の概要があります。

Kentico では、feidl ごとに 1 つの検証メッセージしか許可されないため、これを解決する方法がわかりません。

ありがとう :)

4

1 に答える 1

0

フォームの検証をカスタマイズするか、7.0 バージョンを待つことができます ;) 7.0 バージョンは、デフォルトでそのような動作をサポートします (適切なエラーの概要と、正しくない入力を含むフィールドへのリンク/アンカーを使用)。したがって、Kentico 7.0RC を使用するか、最終バージョンを待つ可能性がある場合は、6.0 でのカスタマイズは廃止されるため、そのアプローチをお勧めします。

6.0 でこれを実現したい場合は、Kentico ビズフォームの検証メッセージに関する次の例を確認してください。

例では、使用している BizForm のコードネームは viewBiz です。変更を行う前に、Web パーツの複製を作成することをお勧めします (標準 Web パーツのコードの変更に関するドキュメント)。変更は、それらの複製されたコード ファイルに対して行われます。

protected void viewBiz_OnValidationFailed()
{

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

}

ご覧のとおり、エラー ラベルをハッシュ テーブルからコントロールとして取得し、そのプロパティを適切に設定する必要があります (ここではテキスト)。メインの検証メッセージを設定するには、次のコードを使用するだけです。

this.viewBiz.ValidationErrorMessage = "主なエラー メッセージ";

検証のためにフィールド値にアクセスするには、以下のコードを確認してください (この例では、フィールドは「FirstName」と呼ばれています)。

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();
        }
}

上記のすべてのメソッドをビジネスフォーム定義に登録する必要があることに注意してください。

BizForm の処理を​​中断した場合は、データを手動で保存する必要がある場合があります。

viewBiz.BasicForm.SaveData("redirect.to.this.url");

PS。私たちは、stackoverflow よりも頻繁にフォーラムを監視しています ;)

よろしく、 ボリス・ポチャトコ、ケンティコ

于 2012-07-30T08:56:03.513 に答える