如何在声明性dojo向导中自动选择第一个面板?
我在dojo 1.5中创建了一个声明性dojo向导,它嵌入在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
<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。