Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/10/2012, 09:12
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: ejecutar funcion recibida de parametro

Buenos días que tal viendo tu código detenidamente

Primero

Código Javascript:
Ver original
  1. function Success(result) {
  2.     alert("entro a Success");
  3. }
  4. function Fail(result) {
  5.     alert("entro a Fail");
  6. }

Si lo que quieres es poder comparar la función en una condicional entonces debes usar return así debe quedar esta parte de tu código

Código Javascript:
Ver original
  1. function onSuccess(result) {
  2.     return result;
  3. }
  4. function onFail() {
  5.     alert('error en codigo');
  6. }

la funcion onFail no pongo como return porque no estas devolviendo nada y en todo caso que muestre un alerta.

Segundo

Código Javascript:
Ver original
  1. CallPageMethod(url, data, onSuccess, onFail) {
  2. {
  3.    ...
  4.    if (onSuccess != null)
  5.    ...
  6. }

No puedes comparar una función haciendo esto para esto debes usar los paréntesis para que digas que lo que se esta ejecutando es una función entonces esto debe quedar de la siguiente forma

Código Javascript:
Ver original
  1. if (onSuccess(result) != null)

Si lees bien estoy diciendo que la función reciba un parámetro y dependiendo el valor que me retorne valide que si no es null.

En este caso ahora si ya estas haciendo la correcta validación y comprobación de tus funciones

Al final tu código debe quedar así

Código Javascript:
Ver original
  1. function CallPageMethod(url, data, onSuccess, onFail) {
  2.     $.ajax({
  3.         type: "POST",
  4.         url: url,
  5.         data: data,
  6.         dataType: "json",
  7.         success: function (result) {
  8.             if (onSuccess(result) != null)
  9.                 fncGetOkDefault();
  10.             else
  11.                 fncGetOk();
  12.         },
  13.         error: function (result) {
  14.             if (onSuccess(result) != null)
  15.                 onFail();
  16.             else
  17.                 fncGetErrorDefault();
  18.         }
  19.     });
  20. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones