yamaoto
@yamaoto
la programmeur

Как изменить поведение клиентской валидании в ASP.NET Web.Forms?

Необходимо изменить поведение клиентской валидации - а именно добавлять класс "error" в родительский элемент поля и на контейнер этих полей.

Проект на asp.net webforms (версия фраемворка 4.5)
Добавил в проект пакет Microsoft.AspNet.ScriptManager.WebForms.5.0.0
В ScriptManager'e добавил строку
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />


Судя по документации при указании атрибута Path, ScriptManager будет загружать запрошенный скрипт по указанному пути заместо сборки.
Но в моем проекте он загрузил его из сборки...

В этой статье дается описание работы ScriptManager'a где указано что в 3.5 некоторые контролы загружают скрипты валидации минуя ScriptManager и в итоге измененный скрипт не загрузится.
Хоть сказано что "некоторые" контролы, в моем проекте все контролы при валидации минуют ScriptManager, в то время как другие скрипты загружаются нормально.

Многие советуют переопределять функции валидации при загрузке страницы
$(function(){
        if (typeof ValidatorUpdateDisplay != 'undefined') {
            var originalValidatorUpdateDisplay = ValidatorUpdateDisplay;

            ValidatorUpdateDisplay = function (val) {
                if (!val.isvalid) {
                    $("#" + val.controltovalidate).css("border", "2px solid red");
                }

                originalValidatorUpdateDisplay(val);
            }
        }
    });


Но этот код не всегда работает, так как ScriptManager загружает их динамически

Или я что-то делаю не так?

На запасной план есть возможность просто сделать свои валидаторы наследовав стандартные...
  • Вопрос задан
  • 2304 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы