Pregunta

Tenemos un control de servidor que heredan de CompositeControl e implementos IPostBackDataHandler, ICallbackEventHandler.

Cuando el fuego de los CallBackEvent para el control (usando Page.ClientScript.GetCallbackEventReference (esto "args", "devolución de llamada", "contexto", true)), en un modo asíncrono, ejecuta los validadores de la página que se no tiene una ValidationGroup definido.

Necesito evitar este comportamiento sin tener que configurar una ValidationGroup a cada validador en la página, y estoy Tring para no hacerlo con el código JavaScript (Sé que podría deshabilitado los validadores anterior del callbackevent, pero yo soy Tring no llegar).

También he intentado poner en práctica IButtonControl para que pueda tener una propiedad CausesValidation y ponerlo en falso, pero no funcionó.

¿Alguien tiene una idea acerca de este tema?

Gracias de antemano !!

Sebastián.

¿Fue útil?

Solución

He encontrado una solución en el código del servidor para desactivar los validadores sin afectar el comportamiento de la página.

En el caso del control LoadPostData i desactivar cualquier otro validador de la página si la devolución de llamada viene desde el control. Y he damos cuenta de que no afecta el comportamiento, ya que la situación real (la propiedad Enable) del validador no quede modificado. Lo que quiero decir es: si hago una devolución de llamada, donde i inhabilitó cualquier otro validador para que no se despiden, y luego hago una devolución de datos los validadores todavía funcionan correctamente (si es que donde permitido antes de la devolución de llamada anterior)

El código que he utilizado es:

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

Yo uso "_ CALLBACKID" para verificar el origen de la devolución de llamada, causa "postCollection [" _EVENTTARGET "]" es nulo ya que estamos en una devolución de llamada y no en una devolución de datos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top