2010-07-07 3 views
0

J'essaye d'ajouter une fonction Javascript à l'événement onLoad d'un asp: Panel. Il va quelque chose comme ceci:Ajout d'une fonction client onload à un contrôle ASP.NET dans 4.0 encode mes guillemets

string clickFunction = "$('[id*=lblHiddenPageArray]').text('');" 

PagesPanel.Attribues.Add("onLoad", clickFunction); 

Je joins cette fonction à d'autres contrôles (boutons) et Cases à cocher et il fonctionne très bien. Mais dans le PagesPanel (mon contrôle asp: Panel), HTMLEncode la fonction. La source de sortie ressemble à ceci:

onLoad="$('[id*=lblHiddenPageArray]').text(''); 

J'ai essayé de Server.HtmlDecode sur l'affectation, mais je reçois la même chose. Je l'ai déjà rencontré dans .net 4.0. Sûrement il y a un moyen d'échapper aux personnages ou quelque chose?

Répondre

0

Je pense que c'est un comportement approprié. Les valeurs d'attribut ne sont pas codées par le navigateur avant d'être exécutées. Un exemple simple:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>foo</title> 
    </head> 
    <body onload="alert(&#39;foo&#39);"> 
     <p>foo</p> 
    </body> 
</html> 

Juste au cas où pour une raison quelconque ne peut pas les choses non en code HTML dans votre tête ;-), Firebug dans Firefox, l'inspecteur de WebKit dans Safari et Chrome, et Libellule dans Opera le fera pour vous automatiquement.

Questions connexes