function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ASMASM 

elseif statements in visualforce??

Hi,
      I am trying to implement some select queries in Visualforce page. I am trying implement search funtionality using two or more fields. I want to search by name or city (and also with both). But I am unable to get the result if one of the fields is blank.
searchTest page has the account name and city as the input fields.
 
And the searchtest2 page has the display in a data table.
 
The code is :
 
public class accountController {
   
   private String nameString;
   private String cityString;
   public void setNameString(String val1) {
    nameString = val1!=NULL?val1:NULL;
    }
    public String getNameString() {
    return nameString;
    }
    public void setCityString(String val2) {
    cityString = val2 != NULL ?val2:NULL;
    }
    public String getCityString() {
    return cityString;
    }
   public List<Account> getAccounts() {
    if ( nameString!=NULL&&cityString!=NULL )
    return [SELECT name,BillingStreet,BillingCity,BillingState,BillingPostalcode,Phone FROM Account WHERE Account.Name LIKE :nameString AND Account.BillingCity LIKE :cityString ORDER BY LastModifiedDate LIMIT 120];
  
    else if ( nameString == NULL  )
    return [SELECT name,BillingCity FROM Account WHERE Account.BillingCity LIKE :cityString ORDER BY LastModifiedDate LIMIT 120];
  
    else if ( nameString != NULL&&cityString == NULL )
    return [SELECT name,BillingCity FROM Account WHERE Account.Name LIKE :nameString ORDER BY LastModifiedDate LIMIT 120];
   
    else
    return null;
    
       }
    public PageReference searchAccount() {
       
        return Page.searchTest2;
 
 
 
 
Please help. Thank you
maheshep.ax379maheshep.ax379
try this code
public class accountController {
   
   private String nameString;
   private String cityString;
   public void setNameString(String val1) {
    nameString = val1;
    }
    public String getNameString() {
    return nameString;
    }
    public void setCityString(String val2) {
    cityString = val2;
    }
    public String getCityString() {
    return cityString;
    }
   public List<Account> getAccounts()
    {
    if ( nameString!=NULL&&cityString!=NULL )
        {
            return [SELECT name,BillingStreet,BillingCity,BillingState,BillingPostalcode,Phone FROM Account WHERE Account.Name LIKE :nameString AND Account.BillingCity LIKE :cityString ORDER BY LastModifiedDate LIMIT 120];
         }
        else if (nameString != NULL  )
         {
    return [SELECT name,BillingCity FROM Account WHERE Account.BillingCity LIKE :nameString ORDER BY LastModifiedDate LIMIT 120];
          } 
         else if (cityString != NULL )
        {
    return [SELECT name,BillingCity FROM Account WHERE Account.Name LIKE :cityString ORDER BY LastModifiedDate LIMIT 120];
        }
    else
    {
    return null;
    }
    
       }
    public PageReference searchAccount() {
        return Page.searchTest2;
    }
}


Message Edited by maheshep on 07-23-2008 08:12 AM
ASMASM

Thanks for the early reply. I have tried the Code which you have sent me. But it seems to do the samething. It does not give the result if one field is blank.

 

maheshep.ax379maheshep.ax379
you should be more clear. no problem in the controller code. should look at VF code for further analysis
ASMASM
I have solved the problem. Thank you for Helping me.
JimRaeJimRae
What was your solution to the problem? I am looking at exactly the same type of situation, and would appreciate any insights you might offer.
 
Jim Rae
ASMASM
The logic in my Code was wrong. I have made the changes to them and now its working.
The Controller Code is as follows:
Code:
public class accountController {
    
   private String nameString;
   private String cityString; 
   public void setNameString(String val1) {
    nameString = val1;
    }
    public String getNameString() {
    return nameString;
    }
    public void setCityString(String val2) {
    cityString = val2;
    }
    public String getCityString() {
    return cityString;
    }
   public List<Account> getAccounts() 
    {
    if ( nameString!=''&&cityString!='' )
        {
            return [SELECT name,BillingStreet,BillingCity,BillingState,BillingPostalcode,Phone FROM Account WHERE Account.Name LIKE :nameString AND Account.BillingCity LIKE :cityString ORDER BY LastModifiedDate LIMIT 120];
         }
        else if (nameString != ''&&cityString=='' ) 
         {
    return [SELECT name,BillingCity FROM Account WHERE Account.Name LIKE :nameString ORDER BY LastModifiedDate LIMIT 120];
          }  
         else if (cityString != ''&&nameString=='' ) 
        {
    return [SELECT name,BillingCity FROM Account WHERE Account.BillingCity LIKE :cityString ORDER BY LastModifiedDate LIMIT 120];
        }
    else
    {
    return null;
    }
    
       } 
    public PageReference searchAccount() {
        return Page.searchTest2;
    }
}