est-il possible d'obtenir l'ID affecté au contrôle utilisateur à partir du contrôle en utilisant javascript ou jquery.Obtenir l'ID de contrôle utilisateur dans le contrôle utilisateur au moment de l'exécution
Merci
est-il possible d'obtenir l'ID affecté au contrôle utilisateur à partir du contrôle en utilisant javascript ou jquery.Obtenir l'ID de contrôle utilisateur dans le contrôle utilisateur au moment de l'exécution
Merci
Qu'est-ce que ASP.NET est normalement ne préfixe votre ID de contrôle avec une chaîne qu'il utilise pour déterminer où se trouve dans l'arborescence de contrôle ASP.NET votre contrôle réel. Dans cet esprit, ce que je fais normalement est d'utiliser le sélecteur 'ends with' de jQuery pour obtenir l'ID complet ASP.NET analysé au moment de l'exécution.
Quelque chose comme:
// get a handle on your original control
var myControl = $('[id$="<myOriginalId>"]');
// and then access it's properties
var myRuntimeId = myControl.eq(0).attr('id');
Comme vous pouvez l'imaginer plus, cela ne va pas le couper quand vous avez UserControls avec le même ID utilisé dans différents endroits de la forme. Je viens de sauter et mettre quelques réglages ici et là (probablement en utilisant la fonction .eq()
) pour répondre à mes besoins d'affaires.
Vous pouvez mettre une classe sur le usercontrol, puis utiliser quelque chose comme $ ("myUC "). Attr (" id")
Je le fais aussi quand il le faut. Je pense que je devrais noter, cependant, que les classes d'éléments sont conçues sémantiquement pour être utilisées à travers plusieurs éléments dans votre DOM, donc quelque chose comme ça peut retourner plusieurs éléments en général. Eh bien, soit cela ou vous utilisez le nom de la classe comme ID de toute façon. –
Je suis d'accord, un certain degré de contrôle doit être appliqué avec cette route. – RubbleFord
Cela peut vous aider à le voir sous un autre angle: Dans .Net, vous pouvez obtenir l'ID généré en utilisant myControl.ClientID
.
Si vous mettez cela dans une variable javascript - je sais que ce n'est pas propre - vous pouvez alors facilement le récupérer.
<!--mypage.aspx-->
<script>
var myIdVar = "<%=myControl.ClientID%>";
if(myIdVar == "foo")
{
alert("bar");
}
</script>
merci, cela correspond parfaitement à ma situation avec peu de modification :) – mehul9595