2011-11-10 18 views
1

我已經創造了道場1.5的聲明道場嚮導嵌入在道場對話是這樣的:如何自動選擇聲明式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> 

一切都非常作品。不過,我有4個面板。如果我繼續進行第三組並取消取消。當我然後點擊按鈕來啓動dojo對話框時,我已經在面板3了!我想回到第一組。因爲我已經投入了時間來使用聲明式方法,所以我希望避免以編程方式進行。我發現網站提到了一個onSelected()方法來完成這個 - >http://dojo-toolkit.33424.n3.nabble.com/resetting-wizard-pane-and-contents-on-reopening-wizard-td158660.html,但是,這並沒有工作,並堅持原因,因爲看在Wizard.js我沒有看到這個方法定義!預先感謝任何幫助! -Doug

回答

1

在您的粘貼代碼中,您在對話框的div中有cancelFunction事件,而不是在嚮導中。所以移動dojoType=dojox.widget.Wizard的div內的<script>標籤。

要選擇特定的嚮導窗格,可以使用selectChild函數。

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

在上面,我認爲你的嚮導有一個id「genWizard」,所以你必須將它添加到嚮導的股利。

現在,當您單擊取消按鈕時,嚮導將跳轉到第一個嚮導窗格。

它會不是如果您只需點擊對話框的X按鈕,就跳轉到第一個嚮導窗格。如果你也想這樣,你需要使用對話框的onHide事件。

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

此腳本標記必須位於對話框的div中,而不是嚮導的,確保您得到正確的結果。

+0

嗨弗羅德,Thx的迴應。那就是訣竅。其實我只是搞亂了cancelFunction的複製/粘貼,它在我的服務器上正確的地方,而不是在上面。但是,你的觀點是有效的。 Thx再次。 – Doug

相關問題