我有一个包含以下(简化)<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
。
我也尝试更改ActiveStepIndex
和Page_Load
方法中的Page_LoadComplete
,这确实有用..
void Page_Load(object sender, EventArgs e)
{
Wizard1.ActiveStepIndex = (Wizard1.WizardSteps.Count - 1);
}
..但会导致Internet Explorer显示脚本警告:“此页面上的脚本出错。错误:预期的对象”
感谢您的帮助!
答案 0 :(得分:1)
我可能错了,但我认为你想使用OnInit覆盖来激活索引,否则所有的回发都会触发Page_Load。
另外,我相信你想使用MoveTo命令而不是设置索引。垮台是你必须使用step的对象,但是你可以从我相信的Wizard.WizardSteps
轻松得到它。
e.g。
private override void OnInit(EventArgs e)
{
this.Wizard1.MoveTo(this.WizardStep3);
base.OnInit(e);
}
我可能在这里错了...如果我是,请有人纠正我。