Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 3 Forum > Newsgroup microsoft.public.fr.dotnet.aspnet
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 15/09/2008, 22h35
Ornette
 
Messages: n/a
Par défaut Ajout de propriété à un control dérivé

Hello,

J'ai des soucis pour ajouter une propriété de type collection à un control
dérivé.
Tout fonctionne très bien quand j'hérite de Control à la place de Panel !!

J'utilise VS 2003, .NET 3.5.

Pour reproduire le problème, ajouter MyPanel à une page et ajouter un role
dans AllowedRole. Fermer la page et ouvrir à nouveau : le contenu de la
propriété à disparu...
On voit bien dans le code HTML que la propriété n'est pas sérialisée.
J'insiste sur le fait que ceci fonctionne très bien quand on hérite de
"Control"...

J'ai retourné internet mais je ne trouve aucune solution.

Avez-vous une idée ?

Cordialement,Ornette


Voici le code :

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Linq;

using System.Text;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Collections;

namespace MyControl

{

[ToolboxData("<{0}:MyPanel runat=server></{0}:MyPanel>")]

[ParseChildren(true, "AllowedRoles")]

[PersistChildren(false)]

public class MyPanel : System.Web.UI.WebControls.Panel // <=== // Works
with public class MyPanel : Control !!!!!

{

public MyPanel() : base()

{


}


[Category("MyProperties")]

[NotifyParentProperty(true)]

[DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content)]

[PersistenceMode(PersistenceMode.InnerProperty)]

public RoleCollection AllowedRoles

{

get { return roles; }

}

private RoleCollection roles = new RoleCollection();



// Required to be able to properly deal with the Collection object ??



protected override void AddParsedSubObject(object obj)

{

if (obj is RoleControl)

{

this.AllowedRoles.Add((RoleControl)obj);

return;

}

}

}





////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////





[ToolboxData("<{0}:RoleControl runat=server></{0}:RoleControl>")]

public class RoleControl : Control

{

public RoleControl()

{

}

[NotifyParentProperty(true)]

[Browsable(true), Description("The allowed role")]

public string RoleName

{

get { return roleType; }

set { roleType = value; }

}

string roleType = "";


}



////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////


public class RoleCollection : CollectionBase

{

public RoleCollection()

{

}

/// <summary>

/// Indexer property for the collection that returns and sets an item

/// </summary>

public RoleControl this[int index]

{

get

{

return (RoleControl)this.List[index];

}

set

{

this.List[index] = value;

}

}

public void Add(RoleControl role)

{

this.List.Add(role);

}



// NOT USED :

public void Insert(int index, RoleControl item)

{

this.List.Insert(index, item);

}

public void Remove(RoleControl role)

{

List.Remove(role);

}

public bool Contains(RoleControl role)

{

return this.List.Contains(role);

}

public int IndexOf(RoleControl role)

{

return List.IndexOf(role);

}

public void CopyTo(RoleControl[] array, int index)

{

List.CopyTo(array, index);

}

}

}


Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

Réponse
Tags:



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui



Fuseau horaire GMT. Il est actuellement 23h52.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,26923 seconds with 10 queries