Как автоматически выбрать первую панель в декларативном мастере додзё? - PullRequest
1 голос
/ 10 ноября 2011

Я создал декларативный мастер dojo в dojo 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 панели.Если я перейду к третьей панели и нажму «Отмена».Когда я затем нажимаю кнопку, чтобы начать диалог додзе, я уже на панели 3!Я хочу начать с панели 1. Поскольку я уже потратил время на декларативный подход, я надеюсь избежать этого программно.Я нашел сайт, который упомянул метод onSelected () для этого -> http://dojo -toolkit.33424.n3.nabble.com / resetting-wizard-pane-and-contents-on-reopening-wizard-td158660.html , однако, это не сработало и не вызывает сомнений, поскольку, глядя в Wizard.js, я не вижу этот метод определенным!

1 Ответ

1 голос
/ 10 ноября 2011

В вашем вставленном коде у вас есть событие cancelFunction в div диалогового окна, а не в мастере.Поэтому переместите тег <script> внутри элемента div, который имеет dojoType=dojox.widget.Wizard.

. Чтобы выбрать определенную панель мастера, вы можете использовать функцию selectChild.

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

В приведенном вышеЯ предположил, что у вашего мастера есть идентификатор «genWizard», поэтому вам нужно добавить его в div мастера.

Теперь мастер перейдет на первую панель мастера, когда вы нажмете кнопку «Отмена»..

не перейдет на первую панель мастера, если вы просто нажмете кнопку X диалогового окна.Если вы тоже этого хотите, вам нужно использовать диалоговое событие onHide.

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

Этот тег сценария должен находиться в div диалога, а не в мастере, убедитесь, что вы правильно поняли.

...