[ASP.NET] Quand tu nous tiens

Bonjour tout le monde,

Je voudrai savoir si il est possible d’utiliser du codebehind dans les ControlUser (je pense que oui) mais surtout si c’est judicieux au niveau des fichiers :

WebForm1.aspx -> WebForm1.aspx.cs
ControlUser.aspx -> ControlUser.aspx.cs

Vaut-il mieux tout mettre dans un seul fichier d’arrière plan ou pas ???

Voilà voilà…

Merci de votre lumière qui éclairera un peut tout çà parce que faut avouer qu’il y a pas mal de trucs à saisir d’un coup…

Merci Tzim
Ce message a été édité par EzecKiel le 06/01/2004

Voui voui, c’est judicieux. Comme pour toute classe .net, il est préférable d’adopter la stratégie 1 classe <=> 1 Fichier.

Donc, effectivement, le codebehind de ton usercontrol, dans un fichier séparé.
Surtout qu’a la base, le usercontrol est là pour être utilisé dans plusieurs pages, l’es donc pas malin de mettre le codebehind avec celui d’une page.

Ce message a été édité par Tzim le 06/01/2004

Bon j’ai un petit souçi…

excusez de jouer mon lourdeau mais j’au une erreur d’analyse…

Message d’erreur de l’analyseur: ‘perso.WebForm1’ n’est pas une classe de base valide, car elle n’étend pas la classe ‘System.Web.UI.UserControl’.

Erreur source:

Ligne 1 : <%@ Control className=“header” codeBehind=“header.aspx.cs” Inherits=“perso.WebForm1”%>
Ligne 2 : <?xml version="1.0" encoding="iso-8859-1" ?>
Ligne 3 : <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”

Fichier source : C:Inetpubwwwrootpersoheader.ascx Ligne : 1

étendre une classe signifie çà se fait bien comme çà en principe :

namespace perso {  public class WebForm1 : System.Web.UI.UserControl  {  ...  } }[/quote] non ?

[quote]Ligne 1 : <%@ Control className=“header” codeBehind=“header.aspx.cs” Inherits=“perso.WebForm1”%> Ligne 2 : <?xml version="1.0" encoding="iso-8859-1" ?> Ligne 3 : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
Fichier source : C:Inetpubwwwrootpersoheader.ascx Ligne : 1

 

C’est une faute de frappe ? (parce que générallement, les “pages” sont en aspx et les controls en ascx). Par ailleurs, dans mon code à moi, la classe du control est abstract (public abstract class ma_classe : System.Web.UI.UserControl). Je sais pas si ca joue.

Oui c’est une faute de frappe, c’est bien ascx…

Bonjour tout le monde…

C’est bon j’ai trouvé, mauvaise manipulation de ma part .

J’ai une autre question :

J’ai donc mon fichier WebForm1.aspx avec le CodeBehind dans WebForm1.aspx.cs.
Dans cette page j’ai un UserControl header.ascx et son codebehind header.ascx.cs.

Ma question est la suivante :

Où et comment puis-je récupérer des données ??? (çà craint comme quesion nan ?)
Plus sérieusement, je me retrouve du coup avec deux méthode Page_Load (un dans WebForm1.aspx.cs et l’autre dans header.ascx.cs), et çà je ne sais pas si c’est très catholique…

Donc en supposant que j’ai une methode qui me retourne la date dans mon fichier header.ascx.cs, comment je l’affiche, si j’ai un <asp:label id=“lbl_date”></asp:label>

Comme vous l’avez compris je nage, (enfin tout n’est pas noir, je flotte pour l’instant).

Merci !!

Le Page_Load du ascx est normal. C’est juste le load du contrôle, alors que l’autre est celui de la page.
Pour mettre des données dans le label, ce ne sont pas les méthodes qui manquent. Tu peux ajouter

text=<%# MethodeQuiRetourneUneDate().ToString("dd/MM/yyyy" ) %>
 et faire DataBind depuis le codebehind, ou tu peux aussi faire
lbl_date.Text = MethodeQuiRetourneUneDate().ToString("dd/MM/yyyy" )
depuis le codebehind toujours.

edit: saloperies de smileys…

Ce message a été édité par boudin le 14/01/2004
Ce message a été édité par boudin le 14/01/2004

merci beaucoup boudin