2011-10-04 3 views
1
<%: Ajax.ActionLink("View Code Status", "GetCodes", "BvIndex", 
     new { id = o.Id }, 
     new AjaxOptions { UpdateTargetId = count.ToString() }, 
     new { @id = "h" + count.ToString()}) %> 

Je souhaite masquer le lien après l'appel ajax. J'ai essayé de le faire en cas de succès et de méthodes incomplètes, mais je n'ai pas réussi à le faire. Toute solution pour cela.Comment masquer Ajax.ActionLink après l'appel

C'est la façon dont j'ai essayé en cas de succès, j'ai été en mesure de le cacher mais je reçois une erreur.

<%: Ajax.ActionLink("View Code Status", "GetCodes", "BvIndex", 
     new { id = o.Id }, 
     new AjaxOptions { 
        OnSuccess = "functionhide("+count+")", 
        UpdateTargetId = count.ToString() 
     }, 
     new { @id = "h" + count.ToString()})%> 

fonction onsuccess

function functionhide(count) { 
      $("#h" + (count)).hide(); 
     }; 

Cela fonctionne bien mais, je reçois une erreur disant

Erreur d'exécution Microsoft JScript: 'b' est nul ou non un objet

Répondre

1

Essayez comme ceci:

<%= Ajax.ActionLink(
    "View Code Status", 
    "GetCodes", 
    "BvIndex", 
    new { id = o.Id }, 
    new AjaxOptions { 
     OnSuccess = "functionhide", 
     UpdateTargetId = count.ToString() // <-- Warning you are probably having invalid markup as ids cannot start with a number 
    }, 
    new { 
     id = "h" + count.ToString() 
    } 
) %> 

puis:

function functionhide() { 
    $(this).hide(); 
} 
+0

Merci Darin. ça marche – Rajesh

+0

Merde, Darin! Tu es trop rapide! J'ai toujours pensé que le mot-clé 'this' référencé l'objet' jqxhr' de l'appel de méthode 'OnSuccess' ... cela a-t-il changé ou ai-je toujours eu tort à ce sujet? –

+0

@DMactheDestroyer, IIRC cela a changé dans ASP.NET MVC 3 car il utilise jQuery et non plus les bibliothèques MicrosoftAjax. –

0

Je trouve cette Stack Overflow post qui pourraient vous aider ... ils ont noté recevoir le même message d'erreur et en faisant la valeur OnSuccess une fonction anonyme semblait fixer.

0

solution simple est d'utiliser -

OnComplete="javascript:this.style.display='none'" 

par exemple

@Ajax.ActionLink(
    "Hide button before ajax", 
    "myAction", 
    new AjaxOptions { OnComplete="javascript:this.style.display='none'" } 
) 
Questions connexes