2009-06-23 6 views
0

Je suis très nouveau à jQuery et j'ai une question rapide.<% # balises de serveur dans jquery

Je souhaite utiliser mes classes côté serveur dans mon code jQuery, quelque chose de similaire à ceci:

$(document).ready(function() { 
var temp = <%# myClass.Id %>; 
}) 

Est-ce possible? si c'est le cas, comment?

Merci beaucoup

Telle est la question plus tard, j'affiné ma première question à:

Je suis désolé, je pense que je ne me suis pas trop expliquer ... J'ai un nom de classe Utilisateur. C'est une classe que j'ai construite dans ma logique métier.

J'ai une page Web nommée UserProfile, à l'intérieur que j'ai la propriété suivante exposant ouvert la session en cours à l'utilisateur:

public BL.User CurrUser  {    get { return (BL.User)Session["currUser"]; }  }I want to be able to access this User class from my aspx page using Jquery. How do I do that? 
+0

De quel type de classes secondaires avez-vous besoin? – cgp

+0

(note, il n'était pas la personne ajoutant les balises, donc je voulais être sûr) – cgp

Répondre

2

Cela ne fonctionnera que si votre javascript est intégré dans vos fichiers source (par exemple, les fichiers .aspx):

<script type="text/javascript"> 
    var id = <%# myClass.Id %>; // store as raw value 
    var id_string = '<%# myClass.Id %>'; // store in a string 
</script> 
2

Comme d'autres l'ont dit, si le JavaScript est dans votre page ASPX, puis en utilisant les balises de serveur fonctionnera très bien.

Si vous avez votre jQuery dans un fichier de script externe, vous pouvez mettre dans votre page ASPX

<script type="text/javascript"> 
var myClass = $('#<%= myClass.ClientID %>'); 
</script> 

puis utiliser la variable dans votre fichier script externe

$(function() {  
    myClass.click(function() { ... }); 
}); 

Pour d'autres options jetez un oeil à cette question et la réponse - How to stop ASP.NET from changing ids in order to use jQuery

+0

+1 Oui, vous devez utiliser la propriété ClientID de votre objet côté serveur. Sinon, le rendu HTML sera inutile. –

2

La syntaxe de liaison de données

<%# MyStaticClass.MyProperty %> 

ne fonctionnera que si vous appelez DataBind sur le conteneur (page). Qu'est-ce que vous êtes après est très probablement la syntaxe suivante:

<%= MyStaticClass.MyProperty %> 

qui vous donnera également accès à vous membres la page/contrôle

<%= this.MyPageProperty %> 

Comme déjà mentionné, vous devriez vraiment affecter ces valeurs à java Variables de script et passez ces variables à vos fonctions JS.

Questions connexes