2010-12-14 79 views
0

Par exemple:comment coder le contenu de la fonction __doPostBack()

href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$PlaceHolderMain$g_188da349_7fe9_42f0_9a95_40cee6cd37a4$ctl00$ctl05$lbtnApplicationName','')"> 

Quels sont ce contenu derrière appel?

+0

Désolé! Impossible de déchiffrer votre question. Souhaite qu'il puisse être élaboré. – Kangkan

+0

Le corps de la question suggère que vous voulez décoder plutôt que d'encoder, la question est cependant assez difficile à ... décoder. Il s'agit d'une publication JavaScript ASP.NET, [probablement] ce qui doit se produire lorsqu'un bouton de liaison nommé lbtnApplicationName a été cliqué. – mammo

Répondre

1

Cela fait partie du code HTML envoyé au navigateur pour le bouton de lien « côté serveur »:

<asp:LinkButton id="lbtnApplicationName" runat="server" OnClick="SomeFuncHere" Text="Get Application Name" /> 

Et ce bouton est à l'intérieur contrôle sans nom qui est nommé ctl05 par défaut, et est à l'intérieur autre contrôle qui a également obtenu aucun nom ainsi le nom par défaut ctl00 etc .. etc .. etc ..

en général, le cadre ASP.NET construit l'ID finale de l'élément en fonction de son ID direct et enchaînant l'ID de ses contrôles parents - contenu placehold compris.
Pour les éléments de formulaire, leur name est construit de manière similaire à l'exception qu'au lieu de _, il utilise $ pour "chaîner" l'ID des parents.

Pourquoi? Pour éviter la possibilité d'avoir plus d'un élément avec le même ID dans le même document HTML. (Ou deux éléments de formulaire avec le même nom quand ils sont dans différents contrôles)

Maintenant cet ID final est utilisé pour indiquer au serveur quel contrôle a appelé le PostBack - ceci est fait en utilisant la fonction JavaScript écrite automatiquement à la page par le framework qui obtient l'ID de l'élément comme argument.