0

我有一个包含以下(简化)<asp:Wizard />控件的 ASP.Net 表单页面。我现在需要修改此页面,以便在加载时加载显示最后一步。

这是否可以在不重新安排向导步骤的情况下完成(我不想这样做)?

<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第一步和最后一步。

我也尝试过更改ActiveStepIndexandPage_Load方法Page_LoadComplete,这确实有效..

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

..but 导致 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 回答