Обновить страницу установщика Wix sh после пользовательского действия - PullRequest
1 голос
/ 26 мая 2020

Я ищу способ обновить sh текущую страницу после настраиваемого действия.

Мой код

<Control Id="Config" Type="PushButton" .../>
    <Publish Event="DoAction" Value="SetConfiguration"></Publish>
</Control>

Это может быть после настраиваемого действия, но я этого не вижу У сеанса есть такая возможность, или просто добавление какого-нибудь события в Control, которое будет работать.

Edit:

Хорошо, у меня есть что-то вроде этого:

<Control Id="Config" Type="PushButton" X="120" Y="243" Width="56" Height="17" Default="yes" Text="Config" >
   <Publish Event="DoAction" Value="SetConfiguration" Order="1"></Publish>
   <Condition Action="disable">EndConfig = "true"</Condition>
   <Condition Action="enable">EndConfig = "false"</Condition>
   <Publish Event="NewDialog" Value="IISconfiguration2">EndConfig="true</Publish>
</Control>

Но как создать NewDialog после возврата результата custom acion. Потому что сейчас это делается в то же время. Установить порядок на 1 и 2 не работают.

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Попробуйте это

<Control Id="Config" Type="PushButton" X="120" Y="243" Width="56" Height="17" Default="yes" Text="Config" >
    <Publish Event="DoAction" Value="SetConfiguration">1</Publish>
    <Condition Action="disable">EndConfig = "true"</Condition>
    <Condition Action="enable">EndConfig = "false"</Condition>
    <Publish Event="NewDialog" Value="IISconfiguration2">2</Publish>
</Control>
1 голос
/ 26 мая 2020

Это известное поведение в собственном пользовательском интерфейсе MSI.

Лучшая работа, которую я могу найти, - это сделать клон диалога и перейти от оригинала к диалогу клонирования (или клону к оригиналу), чтобы он выглядел как тот же диалог для пользователя, но фактически будет другой диалог, и данные будут обновлены.

Пример.

На SQLDlg1:

  <Control Id="Test" Type="PushButton" Text="&amp;Test" TabSkip="no" Default="yes" Height="17" Width="56" X="283" Y="195">
      <Publish Event="NewDialog" Value="SQLDlg2">1</Publish>
      <Publish Event="DoAction" Value="ValidateDatabase">1</Publish>
    </Control>

На SQLDlg2:

<Control Id="Test" Type="PushButton" Text="&amp;Test" TabSkip="no" Default="yes" Height="17" Width="56" X="283" Y="195">
      <Publish Event="NewDialog" Value="SQLDlg1">1</Publish>
      <Publish Event="DoAction" Value="ValidateDatabase">1</Publish>
    </Control>

На в следующем диалоговом окне я также очищаю свойство на случай, если они вернутся.

<Publish Dialog="VerifyReadyDlg" Control="Back" Property="DatabaseValid" Value="{}">1</Publish>
  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="SQLDlg">1</Publish>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...