Ich habe eine Benutzersteuerung, die eine Reihe von Pfeiltasten erzeugt. Ich möchte, dass jede Schaltfläche eine benutzerdefinierte Benutzersteuerung anzeigt. Meine benutzerdefinierte Pfeiltasten-Navigationssteuerung sieht so aus, wenn sie gerendert wird:
Wenn Sie eine Schaltfläche angeklickt haben, wird unter den Pfeilen eine Benutzersteuerung angezeigt. Jede Pfeilschaltfläche muss mit einem benutzerdefinierten Steuerelement verknüpft werden, das eine für diese Schaltfläche spezifische Funktionalität enthält. Derzeit habe ich eine einfache List<ArrowTab> Tabs { get; set; }
Eigenschaft auf dem Benutzersteuerelement, und in der page_load der Seite, die das Benutzersteuerelement hostet, füge ich einige Beispielregisterkarten (siehe oben) programmatisch hinzu, wie folgt:
TabWizard1.Tabs = new List<ArrowTab>
{
new ArrowTab
{
Text = "Project Settings",
Selected = true
},
new ArrowTab { Text = "Groups" },
new ArrowTab { Text = "Products" },
new ArrowTab { Text = "Make Assignments" },
new ArrowTab { Text = "Review Assignments" },
new ArrowTab { Text = "Commitments" }
};
Dies funktioniert für das Hinzufügen der Schaltfläche aus dem Code hinter, aber was ich eigentlich will, ist die Schaltfläche in das Markup für die Benutzersteuerung auf der Seite hinzufügen und auch eine andere benutzerdefinierte Benutzersteuerung zu dieser Schaltfläche zuordnen. Ich möchte zum Beispiel so etwas wie dies tun:
<uc:TabWizard ID="TabWizard1" runat="server">
<items>
<arrowTab Text="Project Settings">
<uc:ProjectSettingsControl ID="projectSettings1" runat="server" />
</arrowTab>
<arrowTab Text="Groups">
<uc:GroupsControl ID="groups1" runat="server" />
</arrowTab>
<arrowTab Text="Products">
<uc:ProductsControl ID="products1" runat="server" />
</arrowTab>
<arrowTab Text="Make Assignments">
<uc:MakeAssignmentsControl ID="makeAssignments1" runat="server" />
</arrowTab>
<arrowTab Text="Review Assignments">
<uc:ReviewAssignmentsControl ID="reviewAssignments1" runat="server" />
</arrowTab>
<arrowTab Text="Commitments">
<uc:CommitmentsControl ID="commitments1" runat="server" />
</arrowTab>
</items>
</uc:TabWizard>
Ein Beispiel dafür, dass jemand bereits etwas Ähnliches tut, ist das Telerik RadPanel-Steuerelement.
<telerik:RadPanelItem Text="Mail" ImageUrl="Img/mail.gif" Expanded="True">
<Items>
<telerik:RadPanelItem ImageUrl="Img/mailPersonalFolders.gif" Text="Personal Folders" />
<telerik:RadPanelItem ImageUrl="Img/mailDeletedItems.gif" Text="Deleted Items" />
<telerik:RadPanelItem ImageUrl="Img/mailInbox.gif" Text="Inbox" />
<telerik:RadPanelItem ImageUrl="Img/mailFolder.gif" Text="My Mail" />
<telerik:RadPanelItem ImageUrl="Img/mailSent.gif" Text="Sent Items" />
<telerik:RadPanelItem ImageUrl="Img/mailOutbox.gif" Text="Outbox" />
<telerik:RadPanelItem ImageUrl="Img/mailSearch.gif" Text="Search Folders" />
</Items>
</telerik:RadPanelItem>
Ich habe keine Ahnung, wie ich eine Benutzersteuerung erstellen kann, die dieses Verhalten ermöglicht. Selbst ein kleiner Hinweis in die richtige Richtung wäre hilfreich.