0

<asp:Wizard />次の (単純化された)コントロールを含む ASP.Net Forms ページがあります。このページを変更して、ロード時に最終ステップを表示するようにする必要があります。

ウィザードの手順を再配置せずにこれを行うことは可能ですか (私はやりたくないのですが)?

<asp:UpdatePanel runat="server" ID="updpanHeader" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Wizard ID="Wizard1" runat="server" DisplaySideBar="false" 
          Style="width: 100%"
          NavigationStyle-CssClass="invisible"
          OnNextButtonClick="Wizard1_NextButtonClick"
          OnActiveStepChanged="Wizard1_ActiveStepChanged">
            <WizardSteps>
                <asp:WizardStep ID="WizardStep1" runat="server" Title="Step 1"
                  StepType="Start">
                    ... wizard form controls for page 1 ...
                </asp:WizardStep>
                <asp:WizardStep ID="WizardStep2" runat="server" Title="Step 2"
                  StepType="Step">
                    ... wizard form controls for page 2 ...
                </asp:WizardStep>
                <asp:WizardStep ID="WizardStep3" runat="server" Title="Step 3"
                  StepType="Step">
                    ... wizard form controls for page 3 ...
                </asp:WizardStep>
            </WizardSteps>
        </asp:Wizard>
    </ContentTemplate>
</asp:UpdatePanel>



StepType最初と最後のステップを 入れ替えてみました。

私はまたActiveStepIndexPage_LoadPage_LoadCompleteメソッドの を変更しようとしましたが、これはうまくいきます..

void Page_Load(object sender, EventArgs e)
{
    Wizard1.ActiveStepIndex = (Wizard1.WizardSteps.Count - 1);
}

..しかし、Internet Explorer に次のスクリプト警告が表示されます。「このページのスクリプトでエラーが発生しました。エラー: オブジェクトが必要です

ご協力いただきありがとうございます!

4

1 に答える 1

1

私は間違っている可能性がありますが、OnInitオーバーライドを使用してインデックスをアクティブ化する必要があると思います。そうしないと、すべてのポストバックによってPage_Loadがトリガーされます。

また、インデックスを設定する代わりに、 MoveToコマンドを使用したいと思います。Wizard.WizardSteps欠点は、ステップのオブジェクトを使用する必要があることですが、それは私が信じていることから簡単に得ることができます。

例えば

private override void OnInit(EventArgs e)
{
  this.Wizard1.MoveTo(this.WizardStep3);

  base.OnInit(e);
}

私はここで間違っているかもしれません...私がそうなら誰かが私を訂正してください。

于 2011-02-22T14:49:47.260 に答える