[SalesForce] Custom Button not working on Visualforce Page

I created a Visualforce page to override the standard case view page. I have a custom button "OnlineClosed" on case object that ask for a remark and update 2 field status and stage at case object. The button works fine on the standard case view page, but not at my visualforce page. Does anyone have any idea why this button does not working on the visualforce page? When I click on it, I get a error message "URL No Longer Exists".

About Custom Button
Behavior: Execute JavaScript and Content Source: OnClick JavaScript.


{!REQUIRESCRIPT("/soap/ajax/22.0/connection.js")} 
{!REQUIRESCRIPT("/soap/ajax/33.0/apex.js")}
var url = parent.location.href; 
var updateRecord = new Array(); 
var myquery = "SELECT Id FROM Case WHERE Id = '{!Case.Id}' limit 1"; 
var reason = prompt("Enter reason", ""); 
result = sforce.connection.query(myquery); 
records = result.getArray("records"); 
if(records[0]) 
{ 
var update_Case = records[0]; 
update_Case.Status = "Closed"; 
update_Case.Stage__c= "Resolved"; 
update_Case.Remark__c= reason; 
updateRecord.push(update_Case); 
} 
result = sforce.connection.update(updateRecord); 
parent.location.href = url;

Code for Button on VisualForce page is below.

Best Answer

Custom buttons are used on Standard page layouts. I am not sure how are you using the same on a VF page.

If you want to replicate the same behavior, better write a function in the VF page and call this function onClick event of an apex:commandbutton. Something like this:

<script  src="/soap/ajax/25.0/connection.js" type="text/javascript"></script>
<script  src="/soap/ajax/25.0/apex.js" type="text/javascript"></script>

<script>
function updaterecord(){
var updateRecord = [];
var case = new sforce.SObject("Case"); 
case.id = "{!Case.Id}";
var reason = prompt("Enter reason", "");    
case.Status = "Closed"; 
case.Stage__c= "Resolved"; 
case.Remark__c= reason; 
updateRecord.push(case); 

result = sforce.connection.update(updateRecord); 
location.reload(true);
}
</script>


<apex:commandButton value="Update"  onclick=" return updaterecord();" reRender="pageDetails" />

You may need to make some more tweaks but I know you can do that. Let me know if this way works for you.

Related Topic