0

Comme mon titre l'indique, j'ai un problème de blocage de propriétés défini.La définition d'une propriété au moment du design à partir de la fenêtre de propriétés d'un contrôle de serveur Web personnalisé bloque/bloque Visual Studio 2010

Voici le scénario:

  1. J'ai créé un contrôle simple serveur ASP.Net personnalisé qui génère un texte.
  2. Je voulais donner une propriété au design pour ce texte afin que les développeurs puissent accéder à son style depuis la fenêtre des propriétés.
  3. Toutes les propriétés de la fenêtre des propriétés fonctionnent à l'exception de celles avec le type System.Web.UI.WebControls.Style que j'ai créées.

Voici ma propriété:

[Bindable(true)] 
[Category("Appearance")] 
[Description("The style for the header")] 
[Localizable(true)] 
public Style HeaderTextStyle 
{ 
    get 
    { 
    Style s = (Style)(ViewState["HeaderTextStyle"] == null ? Styles.defaultHeaderStyle : ViewState["HeaderTextStyle"]); 
    return s; 
    } 

    set 
    { 
    ViewState["HeaderTextStyle"] = value; 
    } 
} 

Oh et Styles.defaultHeaderStyle est juste une propriété d'une classe interne qui renvoie une nouvelle Style. Permettez-moi de préciser que la suspension/plantage ne se produit que lorsque je CHANGE la propriété, de sorte qu'elle ne peut pas provenir du getter.

Je ne vais pas coller mon contrôle de rendu car l'erreur se produit même lorsque je ne restitue rien.

Qu'est-ce qui cause cela?

Merci.

+0

Que retourne Styles.defaultHeaderStyle? –

+0

@rickschott retourne un style statique style.'public defaultHeaderStyle \t \t \t { \t \t \t \t obtenir \t \t \t \t { \t \t \t \t \t résultat Style = new style(); \t \t \t \t \t résultat.Faire.Gras = vrai; \t \t \t \t \t retourner le résultat; \t \t \t \t} \t \t \t} ' –

+0

J'ai trouvé une solution. Je posterai les explications. –

Répondre

1

J'ai trouvé la réponse à mon problème.

Vous voyez, le style classe est une propriété qui a sous-propriétés et il est appelé propriété complexe. Les propriétés complexes (propriété possédant des sous-propriétés) nécessitent une gestion d'état personnalisée pour utiliser l'état d'affichage. La classe Style a besoin d'attributs de conception pour activer la persistance dans les balises du contrôle. Donc ce que j'ai écrit dans mon post original ne fonctionnera pas.

Pour la visite d'explication complète: Server Control Properties Example from MSDN

j'ai réussi à mettre en œuvre à l'aide de cet exemple. J'espère que cela sera utile aux autres.

+0

Dans ce cas, pouvez-vous s'il vous plaît marquer l'article comme réponse comme, il serait plus facile pour quelqu'un de visiter cette question qui contiennent la solution? – clklachu

+0

Ok, je l'ai fait. Je ne pouvais pas le faire parce que stackoverflow me disait que je devais attendre 24 heures pour marquer ma réponse comme réponse. –

Questions connexes