You need to sign in to do that
Don't have an account?
The Knight
How to pass values between two components
In a VF page I have two <apex:component> A and B. This components are not related with each other each having their own controllers. How can I pass data between these two components? The same way I need to pass data from these components to the main page.which is again having a different controller.
I have seen the example of dependency Injection mechanism. But it helps in passing values from page to
components or from parent to child components. But I need to pass values between two components with no relation.
Any help would be appreciated
Joseph
Hi The Knight,
I suppose on the components you could create actionFunctions that interact with the controller. ActionFunctions result in a Javascript callable method with parameter support. The rendered javascript is in the Global "namespace" AFAIK.
So, to pass a value from component a to component b you could define in component b an actionFunction:
<apex:actionFunction name="gimmeA_Value" action="{!takeAValue}" >
<apex:param name="a_value" value="" />
</apex:actionFunction>
Then, in component a you could simply call the gimmeA_Value javascript function when handling the appropriate event:
<script>
function handleEvent() {
gimmeA_Value("valuable value");
}
</script>
Thoughts?
Cheers
All Answers
Hi The Knight,
I suppose on the components you could create actionFunctions that interact with the controller. ActionFunctions result in a Javascript callable method with parameter support. The rendered javascript is in the Global "namespace" AFAIK.
So, to pass a value from component a to component b you could define in component b an actionFunction:
<apex:actionFunction name="gimmeA_Value" action="{!takeAValue}" >
<apex:param name="a_value" value="" />
</apex:actionFunction>
Then, in component a you could simply call the gimmeA_Value javascript function when handling the appropriate event:
<script>
function handleEvent() {
gimmeA_Value("valuable value");
}
</script>
Thoughts?
Cheers
Hi Dave,
Tried your solution. But the value is not being passed from one controller to other. any other solution please?
If you then want to pass those values to your controller; use Javascript Remoting or another actionFuction on your main page and/or the other component that also takes parameters.
hope this helps.