GetCallBackeVentReference запускает валидаторы - как отключить его

StackOverflow https://stackoverflow.com/questions/4519169

Вопрос

У нас есть элемент управления сервером, который наследует от CompositeControl и реализует iPostbackdatahandler, icallbackeventhandler.

Когда мы запускаем Callbackevent для управления (используя page.clientscript.getCallBackeVentReference (это, «args», «обратный вызов», «контекст», true)), в асинхронном режиме он выполняет валидаторы страницы, которая не иметь определенную группу Validation.

Мне нужно избегать такого поведения, не устанавливая группу валидации каждому валидатору на странице, и я не делаю этого с помощью JavaScript (я знаю достичь цели).

Я также пытался реализовать iButtonControl, чтобы у меня было свойство CauseSeSvalidation и установить его на ложь, но это не сработало.

У кого -нибудь есть представление об этой проблеме?

Заранее спасибо!!

Себастьян.

Это было полезно?

Решение

Я нашел обходной путь в коде сервера, чтобы отключить валидаторы, не влияя на поведение страницы.

В событии LoadPostData элемента управления я отключаю каждый валидатор страницы, если обратный вызов исходит от элемента управления. И я понимаю, что это не влияет на поведение, поскольку реальный статус (свойство включения) валидатора не модифицируется. Я имею в виду: если я сделаю обратный вызов, где я отключил каждый валидатор, чтобы их не уволили, а затем я сделаю обратную связь, валидаторы все еще работают должным образом (если они включены до предыдущего обратного вызова)

Код, который я использовал,:

public virtual bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
    {
        if (postCollection["__CALLBACKID"] == this.UniqueID)
            foreach (IValidator validator in Page.Validators)
                    (validator as WebControl).Enabled = false;
    }

Я использую "_CallbackId "для проверки источника обратного вызова, причина" пост -объединение ["_Eventtarget "] - это нулевое, так как мы находимся в обратном вызове, а не в отправке

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top