The example I gave you is what is working for me. Below is the entire UI
script.
<?xml version="1.0" encoding="utf-8"?>
<Include>
<!--Define the dialog to get the Server and Database name information from
the user-->
<UI Id="Screen">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="Mondo" />
<!-- define the install screen-->
<Dialog Id="DialogDatabase" Width="370" Height="270" Title="[ProductName]">
<Control Id="BannerLine" Type="Line" X="0" Y="0" Width="370" Height="1" />
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="1" Width="370"
Height="43" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="BottomLine" Type="Line" X="0" Y="44" Width="370" Height="1"
/>
<Control Id="Description" Type="Text" X="25" Y="60" Width="280"
Height="15" Transparent="yes" NoPrefix="yes"
Text="{\WixUI_Font_Bigger}Preparing to Install Databases, version
[INSTALLVERSION]"/>
<Control Id="ServerNameLabel" Type="Text" X="32" Y="100" Width="290"
Height="13" NoPrefix="yes"
Text="SQL Server (Hostname\Instance:Port):" />
<Control Id="ServerNameEdit" Type="Edit" X="32" Y="110" Width="290"
Height="18" Property="SERVERNAME"
Text="[SERVERNAME]" />
<Control Id="ErrorList" Type ="Text" X="32" Y="130" Width="290"
Height="100" Text="[ERRORMESSAGE]"/>
<Control Id="BackDlg" Type="PushButton" X="180" Y="243" Width="56"
Height="17" Text="Back" />
<Control Id="NextDlg" Type="PushButton" X="236" Y="243" Width="56"
Height="17" Default="yes" Text="Next">
<Publish Event="DoAction" Value="VerifySQLServer">1</Publish>
<Publish Event="DoAction" Value="VerifySQLServer.Get">1</Publish>
<!-- if there is a server error redisplay the database screen else go
to the verify screen -->
<Publish Event="NewDialog"
Value="DialogError"><![CDATA[SERVERERROR~="1"]]></Publish>
<Publish Event="NewDialog"
Value="DialogVerify"><![CDATA[SERVERERROR~="0"]]></Publish>
</Control>
<Control Id="CancelDlg" Type="PushButton" X="304" Y="243" Width="56"
Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
</Dialog>
<!--if there is an error then this screen gest displayed-->
<Dialog Id="DialogError" Width="370" Height="270" Title="[ProductName]">
<Control Id="ErrBannerLine" Type="Line" X="0" Y="0" Width="370"
Height="1" />
<Control Id="ErrBannerBitmap" Type="Bitmap" X="0" Y="1" Width="370"
Height="43" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="ErrBottomLine" Type="Line" X="0" Y="44" Width="370"
Height="1" />
<Control Id="ErrDescription" Type="Text" X="25" Y="60" Width="280"
Height="15" Transparent="yes" NoPrefix="yes"
Text="{\WixUI_Font_Bigger}Preparing to Install Databases, version
[INSTALLVERSION]"/>
<Control Id="ErrServerNameLabel" Type="Text" X="32" Y="100" Width="290"
Height="13" NoPrefix="yes"
Text="SQL Server (Hostname\Instance:Port):" />
<Control Id="ErrServerNameEdit" Type="Edit" X="32" Y="110" Width="290"
Height="18" Property="SERVERNAME"
Text="[SERVERNAME]" />
<Control Id="ErrErrorList" Type ="Text" X="32" Y="130" Width="290"
Height="100" Text="[ERRORMESSAGE]"/>
<Control Id="BackErr" Type="PushButton" X="180" Y="243" Width="56"
Height="17" Text="Back" />
<Control Id="NextErr" Type="PushButton" X="236" Y="243" Width="56"
Height="17" Default="yes" Text="Next">
<Publish Event="DoAction" Value="VerifySQLServer">1</Publish>
<Publish Event="DoAction" Value="VerifySQLServer.Get">1</Publish>
<!-- if there is a server error redisplay the database screen else go
to the verify screen -->
<Publish Event="NewDialog"
Value="DialogDatabase"><![CDATA[SERVERERROR~="1"]]></Publish>
<Publish Event="NewDialog"
Value="DialogVerify"><![CDATA[SERVERERROR~="0"]]></Publish>
</Control>
<Control Id="CancelErr" Type="PushButton" X="304" Y="243" Width="56"
Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
</Dialog>
<!--if everything is ok then screen flow goes here-->
<Dialog Id="DialogVerify" Width="370" Height="270" Title="[ProductName]">
<Control Id="VfyBannerLine" Type="Line" X="0" Y="0" Width="370"
Height="1" />
<Control Id="VfyBannerBitmap" Type="Bitmap" X="0" Y="1" Width="370"
Height="43" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="VfyBottomLine" Type="Line" X="0" Y="44" Width="370"
Height="1" />
<Control Id="VdyDescription" Type="Text" X="25" Y="60" Width="280"
Height="15" Transparent="yes" NoPrefix="yes"
Text="{\WixUI_Font_Bigger}Preparing to Install Databases :
[INSTALLPACKAGE]"/>
<Control Id="VfyServerNameLabel" Type="Text" X="32" Y="80" Width="290"
Height="13" NoPrefix="yes"
Text="SQL Server (Hostname\Instance:Port): [SERVERNAME]" />
<Control Id="VfyDatabaseList" Type ="Text" X="64" Y="100" Width="150"
Height="120" Text="[DBTOINSTALL]"/>
<Control Id="BackRdy" Type="PushButton" X="180" Y="243" Width="56"
Height="17" Text="Back" />
<Control Id="NextRdy" Type="PushButton" X="236" Y="243" Width="56"
Height="17" Default="yes" Text="Next">
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56"
Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
</Dialog>
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<PropertyRef Id ="INSTALLPACKAGE"/>
<PropertyRef Id ="INSTALLVERSION"/>
<PropertyRef Id ="OPTIONSPATH"/>
<PropertyRef Id ="ADVANCED"/>
<PropertyRef Id ="OPTIONSEXIST"/>
<PropertyRef Id ="DBTOINSTALL"/>
<PropertyRef Id ="SERVERNAME"/>
<PropertyRef Id ="SERVERERROR"/>
<PropertyRef Id ="ERRORMESSAGE"/>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog"
Value="Return" Order="999">1</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog"
Value="DialogDatabase">1</Publish>
<Publish Dialog="DialogDatabase" Control="BackDlg" Event="NewDialog"
Value="WelcomeDlg">1</Publish>
<Publish Dialog="DialogError" Control="BackErr" Event="NewDialog"
Value="WelcomeDlg">1</Publish>
<Publish Dialog="DialogVerify" Control="BackRdy" Event="NewDialog"
Value="DialogDatabase">1</Publish>
<Publish Dialog="DialogVerify" Control="NextRdy" Event="NewDialog"
Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog"
Value="DialogDatabase">1</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog"
Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
Value="DialogDatabase">1</Publish>
</UI>
<UIRef Id="WixUI_Common" />
</Include>
-----Original Message-----
From: Joel Dart [mailto:[email protected]]
Sent: Monday, March 10, 2014 11:45 AM
To: General discussion about the WiX toolset.
Subject: Re: [WiX-users] Require fields/disable InstallButton in bootstrapper
Thanks Harold,
I've been trying to get custom actions to work from the
WixStandardBootstrapperApplication without much luck. When I look in the xsd,
it doesn't have Control as an option for Page. Additionally, when just trying
to sub in Control for Button, the built bootstrapper immediately crashes.
Is the example you're using work on the bootstrapper or will it only work when
customizing the msi? When looking around the source for the
WixStandardBootstrapperApplication, it looks like the enable/disable is being
handled explicitly in the code versus the _____State variable trick. My gut is
telling me this cannot be done without implementing a custom
bootstrapperapplication.
________________________________________
From: Harold Wood (H10 Capital) [[email protected]]
Sent: Friday, March 07, 2014 2:40 PM
To: General discussion about the WiX toolset.
Subject: Re: [WiX-users] Require fields/disable InstallButton in bootstrapper
I use a custom action that gets fired when they click the next button, if there
is an error it takes me to my error dialog, the next button on that loops me
back to this dialog so the newly entered value can get validated again.
<Control Id="NextDlg" Type="PushButton" X="236" Y="243" Width="56"
Height="17" Default="yes" Text="Next">
<Publish Event="DoAction" Value="VerifySQLServer">1</Publish>
<Publish Event="DoAction" Value="VerifySQLServer.Get">1</Publish>
<!-- if there is a server error redisplay the database screen else go
to the verify screen -->
<Publish Event="NewDialog"
Value="DialogError"><![CDATA[SERVERERROR~="1"]]></Publish>
<Publish Event="NewDialog"
Value="DialogVerify"><![CDATA[SERVERERROR~="0"]]></Publish>
</Control>
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the
definitive new guide to graph databases and their applications. Written by
three acclaimed leaders in the field, this first edition is now available.
Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users