如何在声明性dojo向导中自动选择第一个面板?

如何在声明性dojo向导中自动选择第一个面板?,dojo,wizard,Dojo,Wizard,我在dojo 1.5中创建了一个声明性dojo向导,它嵌入在dojo对话框中,如下所示: <div dojoType="dijit.Dialog" id="genWizardDialog" jsId="genWizardDialog" refreshOnShow="true" preventCache="true" title="Title"> <div dojoType="dojox.widget.Wizard" style='height: 375px; width:40

我在dojo 1.5中创建了一个声明性dojo向导,它嵌入在dojo对话框中,如下所示:

<div dojoType="dijit.Dialog" id="genWizardDialog" jsId="genWizardDialog" refreshOnShow="true" preventCache="true" title="Title">

<div dojoType="dojox.widget.Wizard" style='height: 375px; width:400px' hideDisabled="true" doneButtonLabel="someLabel">

<div id="wizard1" dojoType="dojox.widget.WizardPane" canGoBack="false" passFunction="panelOneDriver"></div>

<div id="wizard2" dojoType="dojox.widget.WizardPane" passFunction="validateBoxes" style="padding:8px; height:100%;"></div>
....I have some more panels. 

</div>
<!-- Here I have setup the cancel method. -->
<script type="dojo/method" event="cancelFunction">
     //dijit.byId("genWizardDialog").onSelected(0);         
     dijit.byId("genWizardDialog").hide();
</script>
</div>

…我还有一些面板。
//dijit.byId(“genWizardDialog”).onSelected(0);
dijit.byId(“genWizardDialog”).hide();

一切都很正常。但是,我有4个面板。如果我转到第三面板并点击取消。当我点击按钮启动dojo对话框时,我已经在面板3了!我想从面板1开始。由于我已经在声明性方法上投入了时间,我希望避免以编程的方式进行。我发现有一个站点提到了一个onselect()方法来完成这个->,但是,这不起作用,而且是合理的,因为在Wizard.js中我没有看到定义这个方法

在粘贴的代码中,对话框的div中有cancelFunction事件,而不是向导的。因此,将
标记移动到具有
dojoType=dojox.widget.Wizard的div中

要选择特定的向导窗格,可以使用
selectChild
功能

<script type="dojo/method" event="cancelFunction">
    dijit.byId("genWizardDialog").hide();
    dijit.byId("genWizard").selectChild("wizard1", false);
</script>

dijit.byId(“genWizardDialog”).hide();
dijit.byId(“genWizard”)。选择child(“wizard1”,false);
在上面,我假设您的向导有一个id“genWizard”,因此您必须将其添加到向导的div中

现在,当您单击向导的“取消”按钮时,向导将跳转到第一个向导窗格

如果只单击对话框的X按钮,它将不会跳转到第一个向导窗格。如果您也想这样做,则需要使用对话框的onHide事件

<script type="dojo/method" event="onHide">
    dijit.byId("genWizard").selectChild("wizard1", false);
</script>

dijit.byId(“genWizard”)。选择child(“wizard1”,false);

此脚本标记必须位于对话框的div中,而不是向导的div中,请确保正确无误。

在粘贴的代码中,对话框的div中包含cancelFunction事件,而不是向导的。因此,将
标记移动到具有
dojoType=dojox.widget.Wizard的div中

要选择特定的向导窗格,可以使用
selectChild
功能

<script type="dojo/method" event="cancelFunction">
    dijit.byId("genWizardDialog").hide();
    dijit.byId("genWizard").selectChild("wizard1", false);
</script>

dijit.byId(“genWizardDialog”).hide();
dijit.byId(“genWizard”)。选择child(“wizard1”,false);
在上面,我假设您的向导有一个id“genWizard”,因此您必须将其添加到向导的div中

现在,当您单击向导的“取消”按钮时,向导将跳转到第一个向导窗格

如果只单击对话框的X按钮,它将不会跳转到第一个向导窗格。如果您也想这样做,则需要使用对话框的onHide事件

<script type="dojo/method" event="onHide">
    dijit.byId("genWizard").selectChild("wizard1", false);
</script>

dijit.byId(“genWizard”)。选择child(“wizard1”,false);

此脚本标记必须位于对话框的div中,而不是向导的div中,请确保正确无误。

您好,Frode,谢谢您的回复。这就成功了。实际上,我只是把Cancel函数的复制/粘贴搞砸了,它在我的服务器上的正确位置,而不是上面的位置。但是,你的观点是正确的。再一次谢谢。嗨,弗罗德,谢谢你的回复。这就成功了。实际上,我只是把Cancel函数的复制/粘贴搞砸了,它在我的服务器上的正确位置,而不是上面的位置。但是,你的观点是正确的。又是Thx。