Проверка формы системных таблиц Kentico

kentico 6 Я использую настраиваемую веб-часть регистрации и хочу, чтобы проверка моей формы работала следующим образом->

на показе проверки: 1. красная звездочка рядом с каждым недействительным вводом 2. имеет сводку проверки в верхней форме.

Kentico допускает только одно сообщение проверки для каждого feidl, поэтому я не знаю, как решить эту проблему.

Спасибо :)


person Shmarman    schedule 22.07.2012    source источник


Ответы (1)


Вы можете настроить проверку формы или дождаться версии 7.0;) Версия 7.0 поддерживает такое поведение по умолчанию (с красивой сводкой ошибок и ссылками / привязками к полям с неправильным вводом). Поэтому, если есть возможность использовать Kentico 7.0RC или дождаться финальной версии, я бы порекомендовал этот подход, поскольку ваши настройки в 6.0 будут устаревшими.

Если вы хотите добиться этого в 6.0, проверьте этот пример сообщений проверки в бизнес-формах Kentico:

В примерах viewBiz - это кодовое имя BizForm, с которым мы работаем. Перед внесением каких-либо изменений рекомендуется создать клон веб-части (документация при изменении кода стандартных веб-частей), и изменения вносятся в эти клонированные файлы кода.

protected void viewBiz_OnValidationFailed()
{

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

}

Как видите, вам нужно получить метку ошибки в качестве элемента управления из хеш-таблицы и правильно установить ее свойства (здесь текст). Чтобы установить основное сообщение проверки, вы можете просто использовать приведенный ниже код:

this.viewBiz.ValidationErrorMessage = "Основное сообщение об ошибке";

Чтобы получить доступ к значениям полей для проверки, пожалуйста, проверьте код ниже (в примере это поле называется «Имя»):

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:

If you interrupt the processing of the BizForm you might have to save the data manually:

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

PS. Мы следим за нашими форумами чаще, чем за stackoverflow;)

С уважением, Борис Покатко, Кентико

person Boris Pocatko    schedule 30.07.2012