You need to sign in to do that
Don't have an account?
Rajashri
How Set the checkbox value redirecting Page
Hi,
How can we set the value of checkbox?
i have setup the value of checkbox to true in my page but it is not getting save as i m redirecting page to other URL.
URL.getSalesforceBaseUrl().toExternalForm() and checkbox value is not getting set.
Can anyone please guide?
Do you want to pass the value of checkbox to the new url?
Does this value needs to be updated before getting redirected?
Hi,
I want to pass the value of checkbox to the new URL currently it is getting updated while redirecting
you can use
getParameters().get('check') to get the value stored in check
Thanks..Below is the complete scenario of my code.Can you please tell me where to set these parameters in below code?
I have created the object App__c. This Object has the field App_By__c as Formula if( App_Not_Required__c,"N/A", BLANKVALUE( App_Done_By__r.Email , "TBD" )) and App_Not_Required__c as checkbox.
I am setting the checkbox value using below Helper method
public static List<App__c> getSECApp(String pDetailId) {
List<App__c> approvals = [SELECT ID, NAME, App_Date__c, App_Done_By__c, App_By__c,
App_Role__c, App_Not_Required__c,
SF_Record_Link__c
FROM App__c
WHERE Checklist_Detail__c = :pProjectDetailId AND App_Role__c != null
];
for(App__c app :appr){
if(app.App_Role__c == 'User Experience Lead')
)
if(app.App_Done_By__c == null)
{
app.App_Not_Required__c=true;
}
else {
app.App_Not_Required__c=false;
}
}
return appr;
}
public static boolean hasAppChanged(App__c pOld, App__c pNew) {
if(pOld.App_Done_By__c != pNew.App_Done_By__c ||
pOld.App_Not_Required__c != pNew.App_Not_Required__c ||
pOld.I_Approve__c != pNew.I_Approve__c ||
return true;
}
return false;
}
Now I am opening the new page and my checkbox and other fields are getting loaded properly.
and i add save button on my page. I am calling{!saveApp} method after click on save button but checkbox value is nt getting save and it is displaying TBD instead of N/A.
public PageReference saveApp() {
executesaveApp();
PageReference returnPage = new ApexPages.StandardController(Detail).view();
returnPage.setRedirect(true);
return returnPage;
}
public void executesaveApp() {
String msg = '' ;
List<App__c> toBeUpdated = new List<App__c>();
List<App__c> dbAppr = Helper.getSECApp(Detail.Id);
for(App__c newA: appr){
for(App__c oldA: dbAppr){
if(newA.Id == oldA.Id){
if(oldA.I_Approve__c == false && newA.I_Approve__c == true){
newA.App_Date__c = date.today();
}
boolean hasChanged = Helper.hasAppChanged(oldA, newA);
if(hasChanged){
NewA.SF_Record_Link__c = URL.getSalesforceBaseUrl().toExternalForm() + '/' + NewA.id;
toBeUpdated.add(newA);
}
}
}
}
if(toBeUpdated.size() > 0){
update toBeUpdated;
}
msg = 'Save Completed';
ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.CONFIRM,
msg);
ApexPages.addMessage(myMsg);
return;
}
I think this peice of code is which is causing the problem.
for(App__c app :appr){
if(app.App_Role__c == 'User Experience Lead')
)
if(app.App_Done_By__c == null)
{
app.App_Not_Required__c=true;
}
else {
app.App_Not_Required__c=false;
}
// adding changed record into empty list
// emptylist.add(app); / return this list instead of appr
}
return appr;
You are making changes to app and returning appr which i believe is not changed. Can you put a debug statement to check if the field has got updated?
If no then create a empty list of App__c and add the changed records into that list and return that list
were you able to get it to work?
Thanks!
I tried your option but i am getting an error.
Cannot Modify a Collection While It Is Being Iterated?
Why so?
I have added the list like
appr.add(app) as mentioned by you
but getting an error
Cannot Modify a Collection While It Is Being Iterated?
Why so?
You cannot add to the looping collection.
you need a create a new list collection before loop and add it to that list.
List<App__c> newList= new List<App__c>();
newList.add(app)
Thanks a lot!
I created the new List but still i am facing the same problem.
Checkbox is not getting loaded with defaulted values.
Any other solution?
do you want to get on skype or any other IM tool.
I am sure its some small issue..
I need to take a look at the code you have done till now
Where are you populating appr ?
Can you see if its even looping by giving in some debug statements?
I have sent you my email id from message