Je crée un contrôle d'assistant à partir du codebehind en fonction de certaines conditions de la base de données. J'ai besoin d'appliquer le modèle de présentation à partir du code. J'ai vérifié l'exemple de MS, il est basé sur la conception et non sur l'exécution.
J'ai besoin d'aide pour définir le modèle de présentation pour le contrôle de l'assistant asp.net. De préférence avec des exemples de code.
Mise à jour :
Je pense que j'aurais dû être un peu plus explicite. En fait, je ne vois pas dans l'assistant les contrôles que j'ai ajoutés à partir du modèle. Voici mon exemple de code
public class WizardTemplate:ITemplate
{
public void InstantiateIn(Control container)
{
PlaceHolder header = new PlaceHolder();
header.Controls.Add(new LiteralControl("I am from Header"));
header.ID = Wizard.HeaderPlaceholderId;
PlaceHolder displaySideBar = new PlaceHolder();
displaySideBar.Controls.Add(new LiteralControl("I am from displaySideBar"));
displaySideBar.ID = Wizard.SideBarPlaceholderId;
PlaceHolder wizardStep = new PlaceHolder();
wizardStep.Controls.Add(new LiteralControl("I am from wizard step"));
wizardStep.ID = Wizard.WizardStepPlaceholderId;
PlaceHolder navigation = new PlaceHolder();
navigation.ID = Wizard.NavigationPlaceholderId;
container.Controls.Add(header);
container.Controls.Add(displaySideBar);
container.Controls.Add(wizardStep);
container.Controls.Add(navigation);
}
}
Je le fais sur la page init. Je ne vois pas les contrôles que j'ai créés dans cette page. Je me demande ce qui ne va pas.
Wizard testWizard = new Wizard();
testWizard.LayoutTemplate = new WizardTemplate();
for (int i = 0; i < 4; i++)
{
WizardStep step = new WizardStep();
step.Title = "Step" + i.ToString();
step.ID = "Step" + i.ToString();
step.Controls.Add(new LiteralControl("<b> Step" + i.ToString() + "</b>"));
testWizard.WizardSteps.Add(step);
}
pnlRunTimeWizardContainer.Controls.Add(testWizard);
Finalement, je voudrais que l'assistant utilise la présentation ci-dessous, mais en code
<asp:Wizard ID="Wizard1" runat="server" EnableViewState="true">
<LayoutTemplate>
<div>
<asp:PlaceHolder ID="headerPlaceHolder" runat="server" />
</div>
<div style="float: right">
<asp:PlaceHolder ID="navigationPlaceHolder" runat="server" />
</div>
<div>
<asp:PlaceHolder ID="sideBarPlaceHolder" runat="server" />
</div>
<div>
<asp:PlaceHolder ID="WizardStepPlaceHolder" runat="server" />
</div>
</LayoutTemplate>
<WizardSteps>
</WizardSteps>
</asp:Wizard>