You need to sign in to do that
Don't have an account?

Controller method doesn't rerender pageBlock
Hi all!
My aim is showing the pageBlock named iconGallery, when the user click on the commandLink "Show Gallery". If I put the "loadImage" method's code inside Constructor, everything goes perfect. So I wonder if the problem is between the Controller and VF page.
VF page:
Controller:
Thank you in advance!
My aim is showing the pageBlock named iconGallery, when the user click on the commandLink "Show Gallery". If I put the "loadImage" method's code inside Constructor, everything goes perfect. So I wonder if the problem is between the Controller and VF page.
VF page:
<apex:page id="NewAchievement" controller="NewAchievement_Controller"> <!-- Import Component --> <c:loadingSpinner /> <!-- Page Header --> <apex:sectionHeader title="Achievement Edit" subtitle="New Achievement"/> <!-- Begin Form --> <apex:form > <apex:actionFunction action="{!loadImages}" name="loadImages" reRender="iconGallery" oncomplete="hideLoadingDialog();" /> <apex:pageBlock title="Achievement Edit" mode="edit"> <!-- Button Section --> <apex:pageBlockButtons location="top"> <apex:commandButton value="Save" action="{!save}" /> <apex:commandButton value="Save & New" action="{!saveNew}" /> <apex:commandButton value="Cancel" action="{!cancel}" /> </apex:pageBlockButtons> <!-- Fields --> <apex:pageBlockSection columns="1" showHeader="true" title="Information"> <apex:inputField value="{!achievement.Name}" required="true" /> <apex:inputField value="{!achievement.Category__c}" required="false" /> <apex:inputField value="{!achievement.Points__c}" required="true" /> <apex:inputField value="{!achievement.Validation_Criteria__c}" required="true" style="width: 300px"/> </apex:pageBlockSection> <!-- Icon Selection --> <apex:pageBlockSection title="Select Icon"> <apex:commandLink value="Show gallery" action="{!loadImages}" reRender="iconGallery" onclick="showLoadingDialog();" oncomplete="hideLoadingDialog();" /> <apex:image value="https://eu6.salesforce.com/servlet/servlet.FileDownload?file=01558000000UI88" /> </apex:pageBlockSection> </apex:pageBlock> <!-- Icon Gallery --> <apex:pageBlock title="Icon Gallery" id="iconGallery" rendered="{!isClicked}"> <apex:repeat value="{!allLinks}" var="item"> <apex:outputLink value="http://www.google.es"> <apex:image onclick="String" value="{!item}" style="padding-right: 10px; padding-bottom: 10px"/> </apex:outputLink> </apex:repeat> </apex:pageBlock> </apex:form> </apex:page>
Controller:
public class NewAchievement_Controller { public Achievement__c achievement {get; set;} public List<Document> allImages {get; set;} public List<String> allLinks {get; set;} public Boolean isClicked {get; set;} public NewAchievement_Controller () { allImages = new List<Document>(); allLinks = new List<String>(); isClicked = false; } public PageReference saveNew() { try { insert achievement; } catch(System.DMLException e) { ApexPages.addMessages(e); return null; } return (new ApexPages.StandardController(new Achievement__c())).edit(); } public PageReference cancel() { return (new ApexPages.StandardController(achievement).view()); } public PageReference save() { try { upsert(achievement); } catch(System.DMLException e) { ApexPages.addMessages(e); return null; } PageReference redirectSuccess = new ApexPages.StandardController(achievement).view(); return (redirectSuccess); } public PageReference loadImages() { //LOAD EXISTING IMAGES (16x16) allImages = [SELECT Id FROM Document WHERE FolderId = '00l58000000hBuj']; String s = 'https://eu6.salesforce.com/servlet/servlet.FileDownload?file='; for(Integer i=0; i < (allImages.size()-106); i++) { Document d = allImages.get(i); allLinks.add(s + String.valueOf(d.Id)); } isClicked = true; return null; } }
Thank you in advance!
------------
Thanks,
Srinivas
- Please mark as solution if your problem is resolved.
All Answers
------------
Thanks,
Srinivas
- Please mark as solution if your problem is resolved.