3 votes

Définition programmatique du modèle de présentation de l'assistant

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>

2voto

Bazzz Points 9487

Voilà :

public class WizardLayoutTemplate : ITemplate
{
  public void InstantiateIn(Control container)
  {
    // do some cool stuff here with the container control
  }
}

myWizard.LayoutTemplate = new WizardLayoutTemplate();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X