begin process at 2012 05 27 20:00:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

ASP.net

 > 

Donner des propriétés à un ASCX ?


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

Donner des propriétés à un ASCX ?

dimanche 17 avril 2005 à 01:14:05 | Donner des propriétés à un ASCX ?

smoitry

Bonjour !

J'ai un gros soucis, en codant un user control en ASCX et C#.

Je m'explique, pour faire, simple, et déjà tester avant de faire plus compliqué :
Un composant menu.ascx dans lequel j'ai mis un label (ça aurait pu être un litteral, mais là n'est pas le problème). Dans le code behind de ce contrôle, j'ai ceci :

protected string _cssid = "";
protected string _titre = "";
protected System.Web.UI.WebControls.Label Label1;

public string cssid
{
get { return(_cssid); }
set { _cssid = value; }
}

public string titre
{
get { return(_titre); }
set { _titre = value; }
}

private void Page_Load(object sender, System.EventArgs e)
{
// Placer ici le code utilisateur pour initialiser la page
string html_menu = "";
html_menu = "<div id=\"" + cssid + "\">";
html_menu += "<h2>" + titre + "</h2>";
html_menu += "</div>";
Label1.Text = html_menu;
}

J'appelle ce contrôle depuis un autre contrôle (mais je pense que même si je l'appelais directement depuis ma page aspx cela reviendrait au même) :
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="page_menu.ascx.cs" Inherits="test.ctrl.page_menu" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<%@ Register TagPrefix="test" TagName="menu" Src="menu.ascx" %>
<test:menu id="menu1" runat="server" />

Puis dans le code behind de ceci :

private test.ctrl.menu menu1;

private void Page_Load(object sender, System.EventArgs e)
{
// Placer ici le code utilisateur pour initialiser la page
menu1 = new menu();
menu1.titre = "Test";
menu1.cssid = "club";
}

Et à l'exécution, voici ce qui sort de tout ça :
<span id="page_head1_page_menu1_menu1_Label1"><div id=""><h2></h2></div></span>

Autrement dit, soit il ne se souvient pas des propriétés que je lui initialise, soit il génère le contrôle avant que je ne puisse lui passer les propriétés en paramètres.
J'ai fait un essai avec un loadcontrol suivi d'un page.controls.add mais d'une part cela ne fonctionne que directement dans la page aspx (ce qui ne m'arrange pas en l'occurence), et d'autre part le code se retrouve tout à la fin du flux html généré (en gros mon controls.add, je ne sais pas à quel endroit il l'ajoute ce contrôle, moi j'ai besoin de le placer à un endroit précis du flux html).
D'autre part, je ne peux pas initialiser les propriétés du genre :

<test:menu id="menu1" runat="server" titre="Test" />

<%@ Control Language="c#" AutoEventWireup="false" Codebehind="page_menu.ascx.cs" Inherits="aerocase.ctrl.page_menu" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>car je ne connais pas ces propriétés à l'avance, puisqu'à terme ce sera lu soit dans un xml soit dans une base SQL ...

Alors comment faire ? Sûrement que je n'ai pas la bonne démarche, mais justement si quelqu'un pouvait me donner la bonne méthode pour parvenir à mes fins ! Parce que ça fait 3 jours que je fouille un peu partout sur le net sans trouver ... (je précise que j'ai essayé d'utiliser le page_init et le page_prerender à la place du page_load mais rien n'y fait)

Merci par avance à qui voura bien me tirer de ce pétrin !!!

Stéphane
<%@ Register TagPrefix="aerocase" TagName="menu_section" Src="menu_section.ascx" %>

dimanche 17 avril 2005 à 02:49:10 | Re : Donner des propriétés à un ASCX ?

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Normal, supprime le new et met un protected

protected test.ctrl.menu menu1;

private void Page_Load(object sender, System.EventArgs e)
{
// Placer ici le code utilisateur pour initialiser la page
menu1.titre = "Test";
menu1.cssid = "club";
}

Ca devrait marcher.


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
dimanche 17 avril 2005 à 12:30:06 | Re : Donner des propriétés à un ASCX ?

smoitry

Merci Jesusonline !!! C'est exactement ça ! Je n'arrive pas à croire que j'ai pu perdre autant de temps là dessus, mais évidemment il fallait le savoir !

Encore mille mercis !

A+

Stéphane
dimanche 17 avril 2005 à 15:19:55 | Re : Donner des propriétés à un ASCX ?

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
C'est la meme chose que pour un bouton. Quand tu met un bouton dans le code aspx, tu ne fais pas de new pour lui mettre des choses dedans.

Il y a tres peu de différence entre un <asp:button et un <uc1:toncontrol ... si ce n'est que le premier il est concu par Ms dans une assembly et le second par toi meme dans un ascx.

Mais pour le reste c'est la meme chose.


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
lundi 18 avril 2005 à 23:56:40 | Re : Donner des propriétés à un ASCX ?

smoitry

Tu as entièrement raison, tout paraît logique. C'est une mauvaise habitude prise dans les applications "Windows Forms" où tous les contrôles sont "private" ... Merci pour ton aide !

J'ai une autre question, mais je crée un autre sujet ça servira sans doute à d'autres aussi !

Encore merci !
A+

Stéphane


Cette discussion est classée dans : menu, page, html, titre, propriétés


Répondre à ce message

Sujets en rapport avec ce message

Comment faire les découpages du formulaire html [ par Adhc ] Je veux faire un site et j'ai besoin d'information pour la démarche du développement des pages.Ma question et la suivante : découpage te préparation d generer fichiers HTML [ par maya ] J'aimerais générer un fichier HTML à partir d'1 page asp...Jusqu'ici pas trop de gros soucis , si ce n'est que j'aimrais que ce fichier porte le nom d generer fichiers HTML [ par maya ] J'aimerais générer un fichier HTML à partir d'1 page asp...Jusqu'ici pas trop de gros soucis , si ce n'est que j'aimrais que ce fichier porte le nom d generer fichiers HTML [ par maya ] J'aimerais générer un fichier HTML à partir d'1 page asp...Jusqu'ici pas trop de gros soucis , si ce n'est que j'aimrais que ce fichier porte le nom d generer fichiers HTML [ par maya ] J'aimerais générer un fichier HTML à partir d'1 page asp...Jusqu'ici pas trop de gros soucis , si ce n'est que j'aimrais que ce fichier porte le nom d Afficher un lien html dans une page asp [ par RapAttak ] Bjr à tous !Petit débutant en asp, je me forme au gré des humeurs de mon soft Ultradev 4!Petit débutant, donc petits souçis !!Je souhaiterai pouvoir a Télécharge une page HTML en asp pour la traiter [ par Hexen ] Peut-on et si oui comment, télécharger sur son site une page html, afin de la faire lire par un script pour alimenter une base de donnée. activer un champs à l'ouverture d'une page html ? [ par Hesky ] Bonjour, est il possible que positionner le curseur directement sur un champs particulier une fois que la page web est chargée ?De meme est il possibl sos asp [ par souma ] nous avons un site avec une page d'accueil index.aspnous avons effectué des mofications. et une fois que je clique sur un menu de cette page, j'ai d'a Afficher un document word dans un page html ? [ par lelouperre ] Je souhaite afficher le contenu d'un fichier word sachant que word est sur le serveur et pas sur le poste client. J'ai trouvé le code suivant qui ne f


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,406 sec (3)

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