2010-01-04 7 views
0

Bonjour Je vais avoir le même problème de ce poste:Ajax.BeginForm show loadingElementId quand OnBegin return false

Ajax.BeginForm not hiding loading element when onBegin fails mais je ne l'ai pas trouvé comment résoudre encore.

Fondamentalement, quand je l'utilise Ajax.BeginForm avec une fonction de OnBegin et cette fonction retourne false, le elementID de chargement montre encore et il ne se cache jamais à nouveau.

Voici le code que je teste avec:

function isValid() { 
    return false 
} 


<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] } 
     , new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" })) 
{ %> 

Répondre

1

Je ne me souviens pas exactement la solution, j'ai décidé depuis longtemps qu'il était beaucoup mieux d'écrire mon propre Html et plaine gérer les appels Ajax.

Si vous voulez, vous pouvez poster votre code ici et je peux vous montrer comment le faire avec JQuery.

Maintenant, si vous voulez coller avec cette solution, vous pouvez toujours utiliser JQuery pour cacher l'élément manuellement comme ceci:

<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] } 
    , new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" })) 
{ %> 

<script type="text/javascript" language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.4.1.js") %>">//Jquery reference 
</script> 

<script type="text/javascript" language="javascript"> 
    function isValid() { 
     if (true) // In case i whant to return true 
     { 
      return true; 
     } 
     else // I whant to return false 
     { 
      $('#updatePanel').hide(); // Manually hide the LoadingElementId 
      return false; 
     } 
    }  
</script> 
+0

peut-on passer des paramètres à cette méthode i.e. IsValid (obj1, obj2)? – Yasser

Questions connexes