Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to pass argument from visualforce apex tag?

I have a function searchWorkByName that takes "key" as an argument and use SQOL to retrieve the data.

In visualforce side, I have a link that calls searchWorkByName but would like to be able to pass argument such as character 'a'

example, (this throws an error)

<apex:commandLink value="search!" action="{!searchWorkByName('aaa')}" />

Is it possible to do so if not what is the alternatives?

apex class

public class SearchWorkTest { 

    public PageReference searchWorkByName(String key) {

            //find record of work names starting from provided key character
            workNames = [select name from work__c where work__c.name like 'key%'];
            return Page.searchResult;   
     }
}

visualforce

<apex:page standardController="work__c" extenstions="SearchWorkTest">
  <!-- Is it possible to pass argument like 'foo' ? -->
  <apex:commandLink value="search!" action="{!searchWorkByName}" />
</apex:page>
like image 552
Meow Avatar asked Jan 25 '26 01:01

Meow


1 Answers

You can pass in parameters from a page into a function like this:

<apex:commandLink value="search!" action="{!searchWorkByName}">
  <apex:param name="key" value="val"/>
</apex:commandLink>

Obviously, the value of the parameter in this case is fixed. If you want something dynamic (i.e. user types something and that is passed to the function), I'm not 100% sure how you'd do that, but I think it might be possible. However, the solution already posted skins the cat for you, but I thought I'd follow up with an alternative in case it's any use.

like image 73
Gary B Avatar answered Jan 27 '26 00:01

Gary B



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!