12
votes

JavaScript GetElementyID pour ASP.NET Control retourne null?

J'utilise JavaScript et cette erreur apparaît pour moi pendant l'exécution: xxx

ceci mon code: xxx


0 commentaires

7 Réponses :


25
votes

ceci: xxx

doit être ceci: xxx

Le problème est que votre bouton est un contrôle ASP.NET et Générez son propre identifiant client, qui sera différent de l'ID que vous avez spécifié. Mettre dans le code <% = btnalert.clientid%> postera le généré sur le navigateur.


0 commentaires

1
votes

Si vous regardez la page rendue, le contrôle appelé BTNALELRT n'est plus ce nom ...

Si vous ajoutez "<% =", vous pouvez ensuite accéder au nom C # d'un contrôle, et cela devrait fonctionner.


0 commentaires

3
votes

L'ID que vous donnez le bouton ASP: est l'ID utilisé sur le serveur par ASP.NET. Ce n'est pas l'identifiant utilisé par le script client.

Vous devez utiliser: P>

document.getElementById("<%= btnAlelrt.ClientID %>").click();


0 commentaires

3
votes

Si vous affichez la source sur votre page générée, vous constaterez probablement que le bouton n'a plus l'identifiant "BTNALELRT". Il pourrait avoir quelque chose comme "CTL001_BTNALERT", ou un autre identifiant d'unicité généré.

C'est pourquoi votre JavaScript ne le trouve pas.

Vous devez soit rechercher par balise, puis vérifier les identifiants pour voir si elles se terminent par BTnalelrt, ou vous devrez placer une div ou une portée autour d'elle avec un identifiant qui ne sera pas changé (c'est-à-dire 't avoir runat = "serveur"). Vous pouvez ensuite trouver cet élément par son identifiant, puis obtenir le bouton à l'intérieur de celui-ci.

Si vous le pouvez, vous pouvez utiliser la syntaxe <% = btnalelrt.clientid%> Syntaxe pour insérer l'identifiant approprié dans votre JavaScript.

(Sidenote: Est-ce que cela était censé être BNkerert?)


0 commentaires

1
votes

Je ne trouve pas d'échantillon de code pour poster pour vous pour vous en ce moment, mais je peux expliquer le problème de votre choix.

ASP.NET n'utilise pas l'identifiant que vous donnez un objet / élément / bouton quand il l'écrit à la page, cela donne à l'objet un identifiant client.

Si vous faites msgbox (btnalelrt.clientid) dans votre code, vous verrez le nom d'objet que votre JavaScript devrait utiliser.

Il est préférable d'avoir le code .NET Notez ces valeurs, en JavaScript, sur la page, car ils ne sont pas une constante.

J'espère que cela aide.

James


0 commentaires

6
votes

Vous pouvez utiliser ceci: xxx

à partir de asp.net 4.0 Vous pouvez utiliser ClientIdMode Propriété pour votre élément. Et si vous le définissez dans statique , la valeur client sera définie sur la valeur de la propriété ID: xxx

sera rendu comme quelque chose comme ceci: xxx


1 commentaires

Merci, la clientIdMode = "statique" sauvegardez mon problème car je n'ai pas pu obtenir le div en JavaScript.



1
votes

Essayez d'utiliser clientIdMode = "statique". Cela ne changera pas de bouton de bouton à l'exécution.

 var element = document.getElementById('SendMessageButton');


0 commentaires