2009-03-28 6 views
0

Je veux trouver à l'intérieur d'un webcontrol le type réel de la page qui est conçu dans Visual Studio 2008.concepteur asp.net comment obtenir le type de page conçue

je peux obtenir le WebFormsRootDesigner, et en quelque sorte je sais il est possible d'obtenir le

chemin de fichier de la page ASPX.

Je voudrais plutôt obtenir le ProjectItem pour cette page, parce que ce serait une surcharge pour que le contrôle analyse le fichier, mais je ne trouve pas un moyen de le faire.

Et de la ProjectItem d'une page ASPX je n'ai pas la moindre idée comment obtenir la classe page ...

Je veux que mon webcontrol se comporter différemment selon designtime au type de page.

Merci

Répondre

1

C'est une conception vraiment mauvais. Il est toujours mauvais d'avoir un comportement «intérieur» différent en fonction de «l'extérieur», ou un «enfant» basé sur le «parent».

Au lieu de cela, demandez à la page de dire à la commande comment se comporter en définissant une propriété. Différentes pages diront le même contrôle à se comporter de différentes manières. De cette façon, si vous ajoutez une nouvelle page, elle peut toujours choisir d'utiliser l'un des comportements existants.

+0

Je suis d'accord qu'il est en principe de mauvaise conception si vous contrôlez également la page. Mais disons que je veux que mon contrôle fonctionne d'une manière spécifique sur une page d'affichage MVC. Ce n'est pas le travail de la page de dire plus que c'est la classe. Mais je ne sais pas comment y arriver ... – Liviu

+0

Désolé, c'est le travail de la page pour indiquer le comportement qu'elle veut du contrôle. Même si tout ce que vous avez est de deux pages, vous passeriez un bool à la commande pour dire quel comportement utiliser. Ou passer une énumération s'il y a un choix. Ne liez pas le comportement du contrôle à la page. –

+0

@unknown: Vous présentez un malentendu commun lorsque vous suggérez de savoir comment le contrôle sera utilisé. Sauf si vous êtes clairvoyant, vous ne le faites pas. Ne pas coupler le contrôle à la façon dont vous imaginez qu'il sera utilisé, car vous trouverez que votre imagination vous échouera. –

Questions connexes