1

Wizard在 ASP.NET 页面中有一个控件。我正在尝试提供返回到个人WizardSteps 的链接。我找不到任何关于这样做的信息。

这是一些帮助可视化我的问题的代码

<asp:Wizard runat="server" ID="Wizard">
    <HeaderTemplate>
        <ul>
            <li><a href="<%=LinkToTheFirstStep %>">Step 1</a></li>
            <li><a href="<%=LinkToTheSecondStep %>">Step 2</a></li>
        </ul>
    </HeaderTemplate>
    <WizardSteps>
        <WizardSteps runat="server" ID="WizardStepPersonal">
        </WizardSteps>
        <WizardSteps runat="server" ID="WizardStepTravel">
        </WizardSteps>
    </WizardSteps>
</asp:Wizard>
4

2 回答 2

2

您可以只有一个查询字符串变量,例如 ?step=1 并在页面加载时检查它,然后将您的向导设置为:

Wizard.ActiveStepIndex = int.Parse(Request["step"]);

当然还有更多的错误检查。

编辑:对不起,ActiveStepIndex 接受和 int,我最初试图将字符串转换为 int。

于 2012-03-06T15:29:16.760 回答
0

你可以使用一个asp:Menu

这页纸

<asp:Menu ID="MyWizardMenu" Orientation="Horizontal" OnMenuItemClick="MyWizardMenu_MenuItemClick" runat="server">
    <Items>
        <asp:MenuItem Text="One" Selected="true" Value="0"></asp:MenuItem>
        <asp:MenuItem Text="Two" Value="1" ></asp:MenuItem>
        <asp:MenuItem Text="Three" Value="2"></asp:MenuItem>
    </Items>
</asp:Menu>

<asp:Wizard ID="MyWizard" runat="server" OnNextButtonClick="MyWizard_NextButtonClick"  OnPreviousButtonClick="MyWizard_PreviousButtonClick" DisplaySideBar="false">
    <WizardSteps>
        <asp:WizardStep ID="one" Title="One" runat="server">One</asp:WizardStep>
        <asp:WizardStep ID="two" Title="Two" runat="server">Two</asp:WizardStep>
        <asp:WizardStep ID="three" Title="Three" runat="server">Three</asp:WizardStep>
    </WizardSteps>
</asp:Wizard>

背后的代码

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        MyWizard.ActiveStepIndex = 0;
    }
}

protected void MyWizardMenu_MenuItemClick(object sender, MenuEventArgs e)
{
    int index = Int32.Parse(e.Item.Value);
    MyWizard.ActiveStepIndex = index;
}

protected void MyWizard_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
    MyWizardMenu.Items[e.NextStepIndex].Selected = true;
}

protected void MyWizard_PreviousButtonClick(object sender, WizardNavigationEventArgs e)
{
   MyWizardMenu.Items[e.CurrentStepIndex - 1].Selected = true;
}

甚至应该可以绑定MyWizard.WizardStepsMyWizardMenu.DataSource(以避免将您的步骤硬编码到导航项),但我还没有让它工作,因为简单地转换为 IHierachicalEnumeration 是不够的。

于 2012-03-06T17:08:22.157 回答