2010-07-15 7 views
7

मैंने विक्स में एक कस्टम संवाद पृष्ठ बनाया और इसमें एक टेक्स्ट बॉक्स है। यदि पाठ बॉक्स खाली है तो मैं इंस्टॉलर के अगले बटन को अक्षम करना चाहता हूं, यदि उपयोगकर्ता ने मान टाइप किया है तो इसे सक्षम करें। निम्नलिखित कोड आंशिक रूप से काम करता है। यह अगले बटन को अक्षम नहीं करता है, लेकिन जब तक आप मान भरते हैं, तब तक यह अगले पृष्ठ पर नेविगेट नहीं करता है। मेरी समस्या यह है कि जब आप संपादन टेक्स्ट बॉक्स में कोई मान टाइप कर रहे हों तो अगले बटन की स्थिति अपडेट नहीं की जाती है। अगर मैं संपादन टेक्स्ट बॉक्स से मान हटा देता हूं और फिर पिछली स्क्रीन पर वापस क्लिक करता हूं और फिर अगला बटन अक्षम होता है।Wix में लाइव टेक्स्ट नियंत्रण मान के आधार पर अगला बटन सक्षम या अक्षम करें?

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Fragment> 
    <UI> 
     <Dialog Id="MyCustomDialog" Width="370" Height="270" Title="Custom Dialog Options"> 
     <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next"> 
      <Condition Action="disable">USERNAME1 = ""</Condition> 
      <Condition Action="enable">NOT(USERNAME1 = "")</Condition> 
      <Publish Event="NewDialog" Value="VerifyReadyDlg">NOT(USERNAME1 = "")</Publish> 
     </Control> 
     <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back"> 
      <Publish Event="NewDialog" Value="CustomizeDlg">1</Publish> 
     </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> 

     <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="Please type the value" /> 

     <Control Id="UserNameText" Type="Text" X="20" Y="60" Width="290" Height="13" NoPrefix="yes" Text="Please type the username" /> 
     <Control Id="UserNameEdit" Type="Edit" X="20" Y="72" Width="290" Height="18" Multiline="no" Property="USERNAME1"/> 

     </Dialog> 
    </UI> 
</Fragment> 
</Wix> 

उत्तर

3

यहां बताया गया है कि मैंने यह कैसे किया।

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"> 
     <Condition Action="enable"><![CDATA[InDBCONNECTION_STRING_VALID = "1"]]></Condition> 
     <Condition Action="disable"><![CDATA[InDBCONNECTION_STRING_VALID = "0"]]></Condition> 
</Control> 
+0

क्या आप किसी अन्य Wix प्रश्न का उत्तर देने का प्रयास करना चाहते हैं? http://stackoverflow.com/questions/19355537/wix-setting-install-folder-correctly/ –

7

"अगला" बटन को अक्षम और सक्षम करना WIX में लगभग असंभव है। @ Wjdavis5 के उत्तर ने मेरे लिए "अगला" बटन अक्षम कर दिया है लेकिन बटन केवल तभी सक्षम होगा जब उपयोगकर्ता किसी अन्य टेक्स्ट बॉक्स में क्लिक करता है। जो भ्रमित है।

निम्नलिखित कोड this answer पर आधारित है। यह एक एकल टेक्स्ट एंट्री बॉक्स दिखाता है, जब उपयोगकर्ता "अगला" पर क्लिक करता है या तो यह एक त्रुटि संवाद दिखाता है, या इंस्टॉल स्क्रीन पर प्रगति करता है।

<Dialog Id="UserRegistrationDialog" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes"> 
    <Control Id="UserIdEdit" Type="Edit" X="45" Y="85" Width="220" Height="18" Property="UserID" Text="{80}" /> 

    <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next" > 
     <Publish Event="NewDialog" Value="VerifyReadyDlg">2</Publish> 
     <Publish Event="SpawnDialog" Value="UserIdError"><![CDATA[UserID = ""]]></Publish> 
    </Control> 
</Dialog> 

<Dialog Id="UserIdError" Width="260" Height="85" NoMinimize="no" Title="[ProductName]"> 
    <Control Id="UserIdErrorDesc" Type="Text" Width="194" Height="30" X="48" Y="15" Text="Please enter a User ID." /> 
    <Control Id="UserIdErrorOk" Type="PushButton" X="97" Y="57" Width="56" Height="17" Text="Ok"> 
     <Publish Event="EndDialog" Value="Return">1</Publish> 
    </Control> 
</Dialog> 
+0

अच्छा विचार, मैं कस्टम कार्रवाई से परिणाम का उपयोग कर इनपुट को सत्यापित करने के लिए इस कार्यवाही का उपयोग कर रहा हूं। –

संबंधित मुद्दे

 संबंधित मुद्दे