2009-03-28 8 views
0

ich in einem webcontrol die reale Art der Seite, um herauszufinden, möge, die in Visual Studio 2008.asp.net Designer wie den entworfenen Seitentyp bekommen

ich die WebFormsRootDesigner erhalten kann, ausgelegt ist und irgendwie weiß ich es ist möglich, den

Dateipfad der aspx-Seite zu erhalten.

Ich möchte lieber das ProjectItem für diese Seite bekommen, weil es ein Overkill wäre, wenn die Steuerung die Datei analysieren würde, aber ich finde keinen Weg, dies zu tun.

Und von der ProjectItem einer aspx Seite Ich habe keine Ahnung, wie die Seite Klasse erhalten ...

Ich mag meine webcontrol je nach Seitentyp unterschiedlich zur Entwurfszeit verhalten.

Danke

Antwort

1

Das ist ein wirklich schlechtes Design. Es ist immer schlecht, wenn sich das "innere" Verhalten anders verhält als das "äußere" oder das "Kind" auf dem "Elternteil" basiert.

Stattdessen muss die Seite dem Steuerelement mitteilen, wie es sich verhalten soll, indem eine Eigenschaft festgelegt wird. Unterschiedliche Seiten sagen dem gleichen Steuerelement, dass sie sich auf unterschiedliche Weise verhalten sollen. Auf diese Weise können Sie, wenn Sie eine neue Seite hinzufügen, dennoch eines der vorhandenen Verhaltensweisen auswählen.

+0

Ich stimme zu, dass es grundsätzlich schlechtes Design gibt, wenn Sie auch die Seite kontrollieren. Aber lassen Sie uns sagen, ich möchte meine Kontrolle auf eine bestimmte Weise auf einer MVC View Page funktionieren. Es ist nicht die Aufgabe der Seite mehr zu sagen als ihre Klasse. Aber ich weiß nicht, wie ich dazu komme ... – Liviu

+0

Tut mir leid, es ist die Aufgabe der Seite, das gewünschte Verhalten des Steuerelements anzugeben. Selbst wenn alles, was Sie haben, zwei Seiten ist, würden Sie ein Bool an das Steuerelement übergeben, um zu sagen, welches Verhalten zu verwenden ist. Oder pass ein enum auf, wenn es eine Wahl gibt. Binden Sie das Verhalten des Steuerelements nicht an die Seite. –

+0

@unknown: Sie zeigen ein häufiges Missverständnis, wenn Sie vorschlagen, dass Sie wissen, wie die Kontrolle verwendet wird. Wenn du nicht hellsichtig bist, tust du es nicht. Verbinden Sie die Steuerung nicht mit der Art, wie Sie sich vorstellen, dass sie verwendet wird, da Sie feststellen werden, dass Ihre Vorstellungskraft Sie enttäuscht. –

Verwandte Themen