[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 500
  • Last Modified:

validation control

i have a 2 combobox and a 1 textbox and a search button

1) country combobox
2) state combobox
3) textbox

when user click on search button without entering anything in the textbox  then i'm inforcing user to enter (1) country and (2) city name (first 3 characters) which works great  but i have a new requirement:

when the user select country = "United States" then i have to make sure user select

1)Country
2)State
3) city name (first 3 characters)

how do i do that?  
0
madina1
Asked:
madina1
  • 4
1 Solution
 
Hamidreza VakilianSenior iOS DeveloperCommented:
Hi!

add Item "NONE" to your state combobox for none USA countries ....
and add these lines to search button onclick event =>

if (countrycombo.Items.Item[countrycombo.SelectedIndex].ToString = 'United States') and (statecombo.Items.Item[statecombo.SelectedIndex].ToString <> 'NONE') and (sizeof(textbox1.text) >= 3 ) then
{goto next page}


HRV
0
 
madina1Author Commented:
i'm talking about validation control that come along with visual studio asp.net 2

may be i'm confused what you post
0
 
NunoGodinhoCommented:
Hi,

   In your case the best way should be using a CustomValidator in order to make your own definitions of the validation strategy and so you sould implement something like this:

      - ASPX side

         <asp:CustomValidator id="CustomValidator1"
            ControlToValidate="cboCountry"
            Display="Static"
            ErrorMessage="Invalid information selected"
            ForeColor="green"
            Font-Name="verdana"
            Font-Size="10pt"
            OnServerValidate="ServerValidation"
            ClientValidationFunction="ClientValidate"
            runat="server"/>

            <script language="javascript">
                void ClientValidate(source, argument)            
                {
                     object cboCountry = document.GetElementById('cboCountry');
                     object cboState = document.GetElementById('cboState');
                     object txtCityName = document.GetElementById('txtCityName');

                     arguments.IsValid = (cboCountry.selectedIndex != 1 && cboCountry.value == 'United States' && cboState.selectedIndex != -1 && Trim(txtCityName).length > 0);
                }

            </script>

        - Code-behind

           void ServerValidation(object source, ServerValidateEventArgs args)
           {
                 args.IsValid = (cboCountry.SelectedIndex != -1 && cboCountry.SelectedValue.equals("United States") && cboState.SelectedIndex != -1 && txtCityName.Trim().length > 0);
           }


     This should do it.

       Nuno Godinho
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
madina1Author Commented:
Nuno Godinho:

a runtime error has occurred

line 50
error: expected '('

here is my aspx code:

<table style="width: 316px">
    <tr>
        <td style="width: 150px">
            <radcb:RadComboBox
                      id="ddlCountry"
                      Runat="server"
                      Height="140px"
                      Width="150px"
                      Skin="WindowsXP"                                          
                      ShowToggleImage="True"                                           
             
                  />
        </td>  
        <td style="width: 27px">
            <asp:RequiredFieldValidator ID="RequiredFieldValidator_Country" runat="server" ControlToValidate="ddlCountry" ErrorMessage="Select Country" Display="Dynamic" Width="6px">*</asp:RequiredFieldValidator></td>
    </tr>
    <tr>
        <td style="width: 150px">
            <radcb:RadComboBox
                      id="ddlState"
                      Runat="server"
                      Height="140px"
                      Width="150px"
                      Skin="WindowsXP"
                      ShowToggleImage="True"                                          
      
                />
            <td style="width: 27px"><asp:RequiredFieldValidator ID="RequiredFieldValidator_State" runat="server" ErrorMessage="Select State" Width="6px" ControlToValidate="ddlState">*</asp:RequiredFieldValidator></td>
                <tr>
                <td style="height: 26px">
                        <asp:TextBox runat="server" ID="txt" Width="167px"></asp:TextBox>
                </td>
                <td style="width: 27px; height: 26px">
                <asp:RequiredFieldValidator ID="RequiredFieldValidator_City" runat="server" ControlToValidate="txt" ErrorMessage="Enter City name" Width="6px" Display="Dynamic">*</asp:RequiredFieldValidator></td>
                    <td style="width: 291px; height: 26px;"><asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">Help Me Choose</asp:LinkButton></td>
            </tr>
           
           
             </td>
                <td style="width: 27px">
                </td>
        </tr>
    </table>
            <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<br />
           

<script type="text/javascript">                              
    var _ddlState = <%= ddlState.ClientID %>;
    //
    function loadBuilding(item)
    {      
        _ddlState.SetText('<%=aspx_WaitLoading %>');
        if (item.Index > 0)
        {            
            _ddlState.RequestItems(item.Value, false);                                                                        
        }
        else
        {
            _ddlState.ClearSelection();
            _ddlState.SetText('<%= aspx_SelectBuilding %>');                
            _ddlState.RequestItems("", false);                
        }                              
    }
    //
    function ItemsLoaded(combo)
    {
        if (combo.Items.length > 0)
        {
            combo.SetText(combo.Items[0].Text);
        }
        combo.ShowDropDown();
    }
</script>
 
 
0
 
madina1Author Commented:
when i click on the button to select

i get the a error window:

microsoft jscript runtime error: object expected

ClientValidate(val, args);
0
 
madina1Author Commented:
Nuno Godinho

the best example is here

http://www.peterblum.com/vam/DemoAll.aspx

when you select "united states" or "canada" the STATE required field is popup

same exact thing i want to implement

thanks.
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now