begin process at 2012 05 27 18:21:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

AU SECOURS !!!!

 > 

[ASP2] Tuto pour un WebControl ?


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

[ASP2] Tuto pour un WebControl ?

mercredi 10 mai 2006 à 10:53:21 | [ASP2] Tuto pour un WebControl ?

smoitry

Bonjour !

Quelqu'un connait-il un bon tuto sur la création de WebControls avec possibilité de rajouter des Items sous forme de tags enfants (comme on peuple un asp:ListBox avec des asp:ListItem) mais dont les Items seraient d'une classe personnalisée (pas des simples asp:ListItem mais par exemple perso:ItemPerso) et qui fonctionne correctement dans le Designer ?

Je sèche et mon message précédent concernant mon problème n'a trouvé aucune réponse !

Merci d'avance !!!

A+

Stéphane
mercredi 10 mai 2006 à 12:03:40 | Re : [ASP2] Tuto pour un WebControl ?
vendredi 12 mai 2006 à 13:04:57 | Re : [ASP2] Tuto pour un WebControl ?

smoitry

Réponse acceptée !

Salut Jesusonline !

Merci pour tes réponses, j'ai trouvé exactement ce dont j'avais besoin sur le lien suivant :

[ Lien ]

Lien que j'ai trouvé sur la deuxième page que tu m'as indiqué ... C'est parfait, je te remercie pour ton aide !

A+

Stéphane

dimanche 14 mai 2006 à 14:05:50 | Re : [ASP2] Tuto pour un WebControl ?

smoitry

Salut Jesusonline !

Petite question : tout marche, même plus que je ne pensais, j'ai fait le DataBinding comme dans le tutoriel, c'es génial. Mais (et là je parle de l'exemple du tuto que j'ai suivi à la lettre), lorsque je remplis les propriétés qui renseignent les noms des champs dans lesquels puiser les infos, à chaque fois que je passe dans le designer, il m'ajoute automatiquement 3 items avec le champ Text positionné à "abc", comment éviter que cela se produise ?

Merci ! A+

Stéphane

dimanche 14 mai 2006 à 16:07:37 | Re : [ASP2] Tuto pour un WebControl ?

jesusonline

Membre Club Administrateur CodeS-SourceS
Je ne comprend pas trop le problème,

quelles propriété modifies tu ? peux tu me montrer le markup qui en resulte?


Cyril - MVS - MCP
mercredi 17 mai 2006 à 23:09:13 | Re : [ASP2] Tuto pour un WebControl ?

smoitry

Salut, désolé pour la réponse tardive ! Hier soir le site était en maintenance (évolutive apparemment ;-)) (bon et puis là je pensais que ma réponse était passée mais visiblement pas ..., j'espère que là ça passe)

Alors voilà, j'ai fait le tuto, donc un contrôle ButtonList, qui dans une collection Items contient des définitions de boutons, et les instancie au rendu. Dès que je remplis les propriétés DataCommandField et DataTextField (après avoir renseigné au préalable DataSourceID), le designer ajoute automatiquement des éléments "abc" à la collection Items, sans que je ne lui demande rien ... voici le markup en mode "source" :

< SMWeb : ButtonList ID ="ButtonList1" runat ="server" DataCommandField ="Commande" DataSourceID ="SqlDataSource1" DataTextField ="Titre">
<
Items >
<
SMWeb : ButtonItem CommandName ="New" Text ="Ceci est un bouton" />
<
SMWeb : ButtonItem CommandName ="Edit" Text ="Ca c'est pour &#233;diter" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
<
SMWeb : ButtonItem CommandName ="abc" Text ="abc" />
</
Items >
</
SMWeb : ButtonList >

Les deux premiers Items, je les ai remplis à a main, les autres contenant "abc" sont ajoutés tous seuls ... Comment faire pour éviter cela ?

Si tu as une soluce, je suis preneur !!!

Merci d'avance !

Stéphane

mercredi 17 mai 2006 à 23:39:13 | Re : [ASP2] Tuto pour un WebControl ?

jesusonline

Membre Club Administrateur CodeS-SourceS
euh *-)

c'est ouf ca :p

abc ca vient de qqpart de ton code ?

ta propriété items c'est quoi ? une list<truc> ou alors un tableau de truc (truc[]), si c'est un tableau de truc passe plutot par une list<truc> sinon j'en ai aucune idée :s


Cyril - MVS - MCP
vendredi 19 mai 2006 à 13:59:22 | Re : [ASP2] Tuto pour un WebControl ?

smoitry

Alors, Items c'est de type LinkBoxItemCollection
Et LinkBoxItemCollection ça hérite :

publicclassLinkBoxItemCollection : Collection<LinkBoxItem>
{
publicvoid LoadViewState(object state)
{
if (state != null)
{
Pair p = (Pair)state;
Clear();
Pair One = (Pair)p.First;
Pair Two = (Pair)p.Second;
string[] rgTitle = (string[])One.First;
string[] rgUrl = (string[])One.Second;
string[] rgTarget = (string[])Two.First;
string[] rgDesc = (string[])Two.Second;
for (int i = 0; i < rgTitle.Length; i++)
{
Add(
newLinkBoxItem(rgTitle[i], rgUrl[i], rgTarget[i], rgDesc[i]));
}
}
}
publicobject SaveViewState()
{
int numOfItems = Count;
object[] rgTitle = newstring[numOfItems];
object[] rgUrl = newstring[numOfItems];
object[] rgTarget = newstring[numOfItems];
object[] rgDesc = newstring[numOfItems];
for (int i = 0; i < numOfItems; i++)
{
rgTitle[i] =
this[i].Title;
rgUrl[i] =
this[i].Url;
rgTarget[i] =
this[i].Target;
rgDesc[i] =
this[i].Desc;
}
Pair One = newPair(rgTitle, rgUrl);
Pair Two = newPair(rgTarget, rgDesc);
returnnewPair(One, Two);
}
}

Et sinon, abc n'est présent nulle part dans mon code !!! En fait, ça ressemble plutôt à un automatisme du designer qui ajouterait des objets automatiquement pour prévisualiser le contrôle alors que la propriété Items serait vide ... Le problème, c'est qu'il le fait systématiquement !!!

Merci pour ton aide !
A+

Stéphane
dimanche 21 mai 2006 à 15:11:16 | Re : [ASP2] Tuto pour un WebControl ?

jesusonline

Membre Club Administrateur CodeS-SourceS
Je comprend pas pourquoi tu as loadviewstate et saveViewstate dans ta collection :-/ dans le code de ton userControl comment déclares tu ta propriété ? il faut absolument la mettre en readonly si je me souviens bien :

private _items as new List(of LinkBoxItem)
public default readonly property items as List( ofLinkBoxItem)
get
return _items
end get
end property

et ca devrait peut etre j'espere mieux fonctionner :p


Cyril - MVS - MCP
lundi 29 mai 2006 à 14:55:37 | Re : [ASP2] Tuto pour un WebControl ?

smoitry

Salut,

Je rentre de congés ! Merci pour ta réponse ... En fait le loadviewstate et le saveviewstate c'est selon le tuto que tu m'avais filé parce que c'est plus rapide de sérialiser et désérialiser les items en faisant des paires de tableaux qu'en laissant le sérialiseur par défaut du framework ...

Sinon pour la propriété, elle est déclarée comme ça :

privateButtonItemCollection _items;

[
DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[
PersistenceMode(PersistenceMode
.InnerProperty)]
publicvirtualButtonItemCollection
Items
{
   get
   {
      if (_items == null
)
      {
         _items =
newButtonItemCollection
();
         if (base.IsTrackingViewState) base
.TrackViewState();
      }
      return
_items;
   }
}

Comme tu vois, je suis en CSharp, je pense que le Readonly de VB correspond à ne pas implémenter le "set" de la propriété ...

Ouh lààà je vois aussi que dans un post précédent je t'ai mis le source d'une classe LinkBoxItemCollection, j'ai inversé j'aurais dû te mettre celle de ButonItemCollection. Mais de toute façon le problème est le même, les deux classes ont le même contenu à une différence près : ButonItem n'a que deux propriétés string, et donc ne fait qu'une seule paire dans le loadviewstate et saveviewstate.

En fait, si tu reprends le markup suivant :

<SMWeb:ButtonListID="ButtonList1"runat="server"DataCommandField="Commande"DataSourceID="SqlDataSource1"DataTextField="Titre">
   <Items
>
      <SMWeb:ButtonItemCommandName="New"Text="Ceci est un bouton"
/>
      <SMWeb:ButtonItemCommandName="Edit"Text="Ca c'est pour &#233;diter"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
      <SMWeb:ButtonItemCommandName="abc"Text="abc"
/>
   </Items
>
</SMWeb:ButtonList
>

qui est donc généré, en fait, il n'y a que les deux premiers objets ButtonItem que j'ai créés manuellement dans le designer en éditant la propriété Items. Ensuite, je définis un DataSourceID, puis le DataCommandField et le DataTextField pour faire la laison de données, et immédiatement le designer ajoute tous ces objets "abc" sans que je ne lui dise rien. Et du coup les objets se sérialisent dans le markup. Ensuite, quand je lance le projet pour afficher la page, l'objet ButtonList contient tous les éléments ButtonItem du markup, suivis de ceux lus dans la table de base de données qui est liée par le DataSourceID...

Donc moi ce qui m'arrangerait, c'est qu'au lieu de ça, le designer lise directement la base liée pour m'afficher les bons objets, mais à la rigueur s'il ne sait pas le faire ce n'est pas grave, je peux me contenter des objets abc, mais il ne faut pas qu'il génère le markup !

As-tu une idée ?

Merci ! Stéph.

1 2

Cette discussion est classée dans : asp, tuto, items, webcontrol, asp2


Répondre à ce message

Sujets en rapport avec ce message

Collection de webcontrol en asp.net [ par pascalwick ] voila je suis entrain de developper une dll de traduction qui va traduire une page et tous ses webcontrols.je desire donc faire une boucle pour trouve [asp][1.1] Petit problème de listBox et de coloration [ par SupaLou ] Je cherche un modifier la couleur de certain items appartenant à la même ListBox:Je parcours donc ma listBox et fait un test sur chaque item puis j'es ASP envoie d'Email [ par adil_ista ] bonjour je voudrais envoyer un email avec ASP j'ai ce code : <% Set myMail=CreateObject("CDO.Message") myMail.Subject="Sending email with CDO" myMai [ASP.NET] Remplir un datagrid [ par malhivertman1 ] Bonjour, j'ai un datagrid apelé Grid1 que j'aimerai remplir suite a une requete. Je fais donc Code :<pre class="alt2" Image Button [ par elpens ] Bonjour, Je suis actuellement bloqué et je recherche un peu d'aide.Voilà:J'ai un gridView lié avec une db qui m'affiche des alertes. J'aimerais que qu Flash & ASP.Net [ par hichamveo ] je savoir comment integrer une animation flash (*.swf) dans une page web *.aspx;Merci a ceux qui me repondre; Webcontrol+reflection [ par Aspix ] Bonjour, Voilà, j'ai un petit projet sur lequel j'ai placé des composants Webcontrol personnalisé.J'aimerai faire une page qui va me permettre d'aller community server pour asp.net 2.0 [ par norman bates ] Bonjour tout le monde je souhaite savoir si il existe community server pour la version 2.0 d'asp.netMerci d'avance de vos réponses et bon dimanche :)V un blog en asp.net [ par norman bates ] Bonsoir tout le monde j'avais découvert il y a quelques un CMS pour un blog en dot net mais je ne me rapelle plus du nom et après recherche sur google Création report avec reporting service et ASP.NET [ par lolowan ] Bonjour,Je travaille sous Visual Studio 2003 en ASP.NET/C#.Pour la génération de report j'utilise reporting service de Microsoft SQL Server.J'ai besio


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 : 1,186 sec (3)

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