begin process at 2012 05 27 14:56:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Scripting

 > 

Javascript

 > 

Appel de sub sur code behind depuis aspx


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Appel de sub sur code behind depuis aspx

mardi 7 septembre 2010 à 16:42:27 | Appel de sub sur code behind depuis aspx

renocmoa

Membre Club

Bonjour,

tout est dans le titre... ou presque :

je voudrais pouvoir ecrire dans le fichier aspx d'une page :

Code HTML :
<input id="Button1" type="button" value="Modifier la date"  onclick="MaSub() ..."


et même :

Code HTML :
<input id="Button1" type="button" value="Modifier la date"  onclick="MonUserControl.MaSub() ..."



avec evidement dans le code behind de l'usercontrol :

Code Visual Basic :
Protected Sub MaSub
bla bla

end sub


ou alors

[code=html]<script type="text/VB">Sub MonScript() MonUserControl.MaSub</script>


Code HTML :
<input id="Button1" type="button" value="Modifier la date"  onclick="MonScript() ..."


et je tourne en rond....

D'ou ma question comment appeler une sub ou une fonction (avec ou sans paramétre) se trouvant dans le code behind depuis une page aspx ou ascx


Merci à tous

reno
jeudi 9 septembre 2010 à 12:22:12 | Re : Appel de sub sur code behind depuis aspx

Netlink

Membre Club

Salut Reno,

Voici un exemple :

Code ASP.NET :
<asp:TextBox ID="TextBox1" runat="server" Text="Modifier la date" OnClick="TextBox1_Click" />


et dans le code behind :

Code Visual Basic :
Protected Sub TextBox1_Click(ByVal sender As Object, ByVal e As EventArgs)
' Code à exécuter...
End Sub


Dans l'attribut OnClick de la balise asp:TextBox il faut indiquer le nom de la méthode à appeler dans le code behind. Il faut que le nom soit absolument identique sinon ça ne fonctionnera pas.

@ bientôt, Matt
jeudi 9 septembre 2010 à 16:28:11 | Re : Appel de sub sur code behind depuis aspx

renocmoa

Membre Club

Merci de la réponse
Et si la sub appelée se trouve dans un usercontrol ?

reno
jeudi 9 septembre 2010 à 16:53:54 | Re : Appel de sub sur code behind depuis aspx

Netlink

Membre Club
Si votre Button et le sub se trouvent dans le même usercontrol, il faut procéder de la même façon que pour une page classique.

Cependant, si vous souhaitez appeler un sub situé dans une autre classe, je ne suis pas sûr car je n'ai jamais testé, mais je pense que dans l'attribut OnClick de la Button il faut mettre quelque chose du genre :

Code ASP.NET :
<asp:Button ID="Button1" runat="server" OnClick="MaClass.MonSub" />


Avec dans une classe séparée (par exemple MaClasse.vb) :

Code Visual Basic :
Public Class MaClass

' Sub appelé depuis notre bouton
Public Shared Sub MonSub()
End Sub

End Class


Donc à tester pour voir si ça fonctionne

Matt - Consultant .NET
jeudi 9 septembre 2010 à 17:28:54 | Re : Appel de sub sur code behind depuis aspx

renocmoa

Membre Club


Alors avec

MaClass.MaSub j'ai une erreur de compilation, MaClass n'est pas un membre de MaPage

MaClass1.MaSub (MaClass1 étant l'ID de monusercontrol) rien ne se passe et MaSub n'est jamais appelée


A la base je recherche cela pour un bouton html input (car il ne provoque pas le rechargement de ma page) je souhaite, en effet, juste faire apparaitre (ou disparaitre) une zone de ma page sans la recharger, mais peut être qu'il s'agit d'une fausse route...

Merci


reno
jeudi 9 septembre 2010 à 17:39:33 | Re : Appel de sub sur code behind depuis aspx

Netlink

Membre Club
Ok merci d'avoir pu tester

Pour masquer une partie de votre page sans la recharger, je pense que vous devriez utiliser un UpdatePanel (seule la partie à l'intérieur de l'UpdatePanel sera rafraichie, c'est le fameux rendu partiel) et vous pourrez utiliser du code behind pour contrôler ce qui se passe dans ce panel.

Je vous recommande de consulter les pages suivantes :


Matt - Consultant .NET
jeudi 16 septembre 2010 à 12:37:32 | Re : Appel de sub sur code behind depuis aspx

renocmoa

Membre Club

Merci du conseil je teste....

Mais un autre probléme surviend :

J'utilise une masterPage depuis peu et :

sur OnClick="MaSub()" : erreur jscript MaSub non définie

Un autre bouton utilise un script (<script type="text/javascript"> function OnCalendar2Click() { if(Calendar2_PanelC.style.display == "none")..."
Et là c'est Calendar2_PanelC qui nest plus défini !!!!


évidement tout ça était OK

Help!

merci

reno
jeudi 16 septembre 2010 à 12:47:44 | Re : Appel de sub sur code behind depuis aspx

Netlink

Membre Club
Attention car l'attribut OnClick permet d'accéder au code behind côté serveur, contrairement à l'attribut OnClientClick qui permet d'accéder au code Javascript côté client.

De plus dans l'attribut OnClick il ne faut pas mettre de parenthèses.

Pour le problème avec votre script, il faut savoir qu'un contrôle possède 2 identifiants :
- l'identifiant que vous lui donnez via l'attribut ID (par ex. ID="btnSave")
- l'identifiant côté client, qui est créé lors de la génération de la page (c'est le ClientID) (vous verrez par ex. ID="ctl00_toto_btnSave" dans votre code HTML)

Pour pouvoir appeler un contrôle dans du code Javascript il faut donc utiliser le ClientID. Pour cela, plusieurs solutions :

- Soit vous utilisez le .NET Framework 4.0 et vous pouvez définir le mode d'attribution du ClientID dans votre code behind (vous pouvez utiliser le mode Static (il me semble), qui aura pour effet d'assigner la même valeur au contrôle côté serveur et côté client). Dans ce cas, vous pourrez écrire à la main le ClientID de votre contrôle dans votre code javascript comme vous l'avez fait dans votre dernier post, puisqu'il ne changera jamais.

- Soit vous utilisez les blocs de code, pour obtenir quelque chose qui ressemble à ça :

Code Javascript :
function OnCalendar2Click() { if(<% this.Calendar2_PanelC.ClientID %>.style.display == "none")
...


<% this.Calendar2_PanelC.ClientID %> (C#) ou <% Me.Calendar2_PanelC.ClientID %> (VB) aura pour effet d'aller récupérer le ClientID de votre Calendar Control.

Matt - Consultant .NET
jeudi 16 septembre 2010 à 13:22:31 | Re : Appel de sub sur code behind depuis aspx

renocmoa

Membre Club

merci encore

parenthéses ou pas marche pas avec onclick="MaSub" ..?

par contre super pour le ClientID une notion m'échappait, je suis plus habitué aux application win en vb.net c'est mon premier projet en asp, mais ça viend doucement

reno
jeudi 16 septembre 2010 à 14:09:29 | Re : Appel de sub sur code behind depuis aspx

Netlink

Membre Club

Est-ce que MaSub est bien dans le code behind de la page (.ASPX) ou de l'usercontrol (.ASCX) ?

Ou bien est-ce que MaSub est dans le code behind de votre MasterPage (.MASTER) ?

Matt - Consultant .NET

1 2

Cette discussion est classée dans : page, code, appel, aspx, behind


Répondre à ce message

Sujets en rapport avec ce message

Ouverture d'une page Aspx via le code behind [ par AnneLevefaude ] Bonjour,Ma question va sans doute vous paraitre facile, mais je dois avouer que je ne sais pas comment m'y prendreEst-il possible dans le code behind code behind + html [ par emmanuel9 ] Bonjour à tous, J'ai une ArrayList de chaine et je voudrais afficher dynamiquement sur ma page en asp.net ces chaînes sous forme de label donc je fa champ inconnu dans code behind ? [ par ronando ] Bonjour à tous, j'ai un problème tout simple mais que je comprend pas !Sur une page aspx je place des textbox mais je n'ai pas d'accès dans mon code b champ inconnu dans code behind ? [ par ronando ] Bonjour à tous, j'ai un problème en .net (webform) tout simple mais que je comprend pas !Sur une page aspx je place des textbox mais je n'ai pas d'acc sqldatasource en code behind [ par marcbjh ] Bonjour jessaye dexecuter sqldatasource en code behind avec un griedview dans aspxmais ca marche pas il m'affiche riendans ma page vb jai :D Élément déclaré dans .aspx inatteignable dans le code-behind [ par JuLsupinfo ] Bonjour, Est-ce que cela est déjà arrivé à quelqu'un ? Je m'explique, je déclare un élément dans la page aspx et je n'arrive pas à y avoir accès dans Comment atteindre les controles de la page aspx dans une Ajax.Method? [ par obitskater ] Bonjour tout le monde, Voilà, je vous expose mon petit soucis: Dans mon code-behind C# de ma page aspx, j'ai une methode AjaxPro que je peux appeler Code behind, message en attente [ par Maroxye ] Bonjour!J'ai trouvé un super composant, appellé busybox : http://blogs.crsw.com/mark/samples/BusyBoxDemo/Demo2.aspxQui permet d'afficher un message "p comment travailler en full code behind [ par DxMachina ] Salut à tous, Je développe une appli en asp.net qui s'intègre dans un placeholder, j'ajoute donc tous mes webcontrols au niveau du Page_Init de la pag création d'un control dans le code-behind et ajout dans la page aspx [ par tom741pawa ] Bonjour à tous,J'ai une question qui est peut être un peu bête ^^.J'ai crée une table dans mon code behind et je voudrai tout bêtement la faire appara


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales