Pregunta

Estoy teniendo un problema con telerik RadGrid, quiero permitir la selección de múltiples filas. También quiero ir al servidor cada vez que está seleccionada o no consecutivos. He creado una función de JavaScript para controlar los eventos del lado del cliente de la rejilla (OnRowSelected y OnRowDeSelected). Las funciones de este aspecto:

 function onOperationRowSelected(sender, eventArgs) {
            __doPostBack("<%=myControl.ClientID %>", "rowSelected:" + eventArgs.get_itemIndexHierarchical());
        }

La otra función es muy similar, la única diferencia es que se envía la serie "rowDeselcted" en lugar de "rowSelected".

En Load puedo comprobar para ver si la solicitud es una solicitud POST usando "IsPostBack" y si es así, puedo comprobar para ver si es un rowSelected o rowdeselected.

Mi problema es cuando selecciono una primera prima en mi rejilla, una solicitud POST pasa (que se espera), sin embargo, cuando selecciono la segunda fila, una petición GET se emite, que (obviamente) dará lugar a IsPostBack regresar falso.

¿Qué me estoy perdiendo aquí?


EDIT: Acabo de comprobar el objeto Request y se encontró que el valor de la propiedad HTTPMethod es "POST". ¿Cómo es que una petición HTTP POST y IsPostBack devuelve falso ??

¿Fue útil?

Solución

¿Está seguro de la solicitud GET tiene el argumento de evento correcto?
Creo que hay algo más que está haciendo la solicitud GET. Probablemente un poco de magia de AJAX por esa red, algún recurso o una llamada AJAX PageMethod o la reescritura de URL cosa o algo por el estilo.

es el nombre de la página default.aspx o algo parecido? A veces en un navegador (no recuerdo detalles) obtener una imagen más o menos (no recuerdo situación exacta) hace que el navegador también golpea el "/ samefolder" URL, lo que abre la página predeterminada.

Comprobar la solicitud con FireBug y ver lo que dice.

Otros consejos

La función respeta la acción de la <form>. Esto es lo que hace __doPostBack:

function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

Por lo tanto, hará lo que la forma se ajusta a hacer, eso es sólo normalmente Publicar en asp.net.

Entonces, ¿es posible? Sí, por supuesto, ¿por qué está ocurriendo en su caso, no estoy seguro.

Sin ver el margen de beneficio que genera la red, estoy suponiendo que utiliza un enlace con un controlador de clic-javascript aplicada para hacer la devolución de datos. Creo que la causa más probable, entonces, es un error de JavaScript que está impidiendo el manejador de disparar, lo que le da el comportamiento predeterminado del anclaje al que se aplica el controlador, en este caso un GET. El mejor consejo que se puede dar es que mirarlo en Firefox / Firebug y ver si hay algún error que se muestran en la consola.

Dicho esto, es posible que desee crear la aplicación para que funcione si javascript está deshabilitado y tanto corregir el error y encontrar la manera de responder si termina con una petición GET.

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