ImageButton - Reload complet d'une page...

emmanuelcastellani Messages postés 4 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 27 décembre 2007 - 27 déc. 2007 à 15:19
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 27 déc. 2007 à 16:42
Bonjour,
Je suis nouveau et sur ce forum, et en asp.net.

Ma problématique me semble simple, mais je n'ai malheureusement pas réussi à trouver ce qu'il faut pour la solutioner...

En gros: j'ai un control asp image button créé dans la Page_Load de ma page:
ImageButton on =
new
ImageButton();
on.ImageUrl =
"\\IPhone\\App_Themes\\Green\\LIGHT_ON_UP.png";
on.ID =
"gc_on" + servicecontent.globalControl.Id;
on.CommandName =
"switchOn";
on.CommandArgument = servicecontent.globalControl.Id;
on.Command +=
new
CommandEventHandler(ImageButton_Command);
on.Attributes.Add(
"OnMouseDown",
"this.src = '/IPhone/App_Themes/Green/LIGHT_ON_DOWN.png'");
on.CssClass =
"lightcircuit_global_control";




Je rajoute ce button dans un placeholder:
GlobalPlaceHolder.Controls.Add(on);

Mon placeholder étant lui même contenu dans un UpdatePanel:
<
asp:UpdatePanel
ID="UpdatePanel1"
runat="server">
<ContentTemplate>
   <asp:PlaceHolder
ID="GlobalPlaceHolder"
runat="server"/>
</ContentTemplate>
</asp:UpdatePanel>


J'ai du traitement à faire sur l'èvenement click du boutton, mais j'aimerais que la page ne se recharge pas entièrement sur le clique...

Ca ne parrait pas bien sorcier, mais là je bloque !

Merci de votre aide.

Manu.
 

6 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 déc. 2007 à 15:29
Bonjour,

pk utiliser un placeholder et créer ton imagebutton dynamiquement ? c'est source d'erreur ça ! rajoute ton imagebutton directement dans le .aspx puis manipule ces propriétés ensuite dans le code behind. Car là je pense que tu ne recréé pas l'imagebutton quand il faut lors du postback donc ASP.net ne comprend pas qui fait quoi ....

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
emmanuelcastellani Messages postés 4 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 27 décembre 2007
27 déc. 2007 à 15:42
Hello,
J'ai besoin de créer mes boutons de manière dynamique...

J'ai tout d'abord essayer de créer ces boutons dans la page aspx elle même en faisant un truc du genre:




<%




foreach
(ClientComSDK.Data.

RGPObject
obj

in
servicecontent.devices)
{
%>


<
asp
:
ImageButton



ID
="btOn"



runat
="server"



CommandArgument
="
<%#device.id%>

"



CommandName
="SwitchOn"



OnCommand
="CommandHandler"



/>

<
asp
:
ImageButton



ID
="btOff"



runat
="server"



CommandArgument
="
<%#device.id%>

"



CommandName
="SwitchOff"



OnCommand
="CommandHandler"



/>


<%
}
%>

Mais malheureusement ça ne fonctionnait pas, la valeur de CommandArgument de mes boutons était toujours vide. Il semblerait que les tag génèrent leur code avant que ma boucle ne soit exécuter.
D'où la création de ces même boutons dans le Page_Load...

N'y aurait-il pas moyen de signifier quelque part dans mes boutons ou dans mon update pannel lui même (peut etre au moyen d'AsyncPostBack trigger) de ne recharger que la partie dans l'update panel??

Merci...
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 déc. 2007 à 15:47
Je te conseil de regarder le fonctionnement des controles d'ASP.net ... ca t'aidera grandement.

Pour ton problème, tu peux utiliser un Repeater et éviter les (horribles) créations de controles dynamiques.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
emmanuelcastellani Messages postés 4 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 27 décembre 2007
27 déc. 2007 à 15:50
Ok,
je vais jeter un coup d'oeil au Repeater....

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
emmanuelcastellani Messages postés 4 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 27 décembre 2007
27 déc. 2007 à 16:01
Je te prends encore 2 minutes, pour quelle raison je me retrouve avec ce message d'erreur lorsque j'utilise la deuxième méthode énoncée ci-dessus ?




Compiler Error Message: CS0103: The name 'servicecontent' does not exist in the current context

Source Error:



,

----


Line 14:                     
Line 15:                         <!---->

Line 16:                         " OnCommand="ImageButton_Command"/>
Line 17:                         " OnCommand="ImageButton_Command"/>
Line 18:                     








Mon objet servicecontent existe...je le récupère quelques lignes au-dessus, une idée ?

Merci.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 déc. 2007 à 16:42
faudrait voir comment ru le récupere mais oublie l'utilisation des <% %> dans les .aspx c'est à bannir sauf pour les <%= %> ou <%# %> on fait pas de boucle dans un .aspx ! (sinon on retourne à la préhistoire (et on fait du PHP ;)))

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
0
Rejoignez-nous