1

WizardASP.NET ページにコントロールがあります。個人へのリンクを提供しようとしていますWizardStep。私はそれを行うことに関する情報を見つけることができません。

ここに私の問題を視覚化するのに役立つコードがあります

<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.WizardStepsですMyWizardMenu.DataSourceが、単に IHierachicalEnumeration にキャストするだけでは十分でないため、まだ機能していません。

于 2012-03-06T17:08:22.157 に答える