+ Start a Discussion

apex command button action command not working

Hi All,

  i have written following class for inserting and updating the record.in this updateledger method calling upsert command.when new record is inserted.this method not called.Can u please help me this.

public with sharing class newpagecontroller {
public void ledgerNewTable() {
ledgeradd = true;
public PageReference addLEdger() {
insert newledger;
newLedger = new Ledger__c();
return null;
public boolean ledgeradd{get;set;}
public string editid{get;set;}
public string updateid{get;set;}
public string delid{get;set;}
public string anum{get;set;}
public string aname{get;set;}
public string atype{get;set;}
public boolean addglopp{get;set;}
public Ledger__c newLedger { get; set; }
public Ledger__c ledgercreation { get; set; }
private List<Ledger__c> ledgertable;
public List<Ledger__c> getledgertable(){
ledgertable = [ SELECT Id,Name,Account_Name__c,Account_Number__c,Account_Type__c,Description__c,Notes__c,Sub_Account__c FROM Ledger__c where Id != null];
if(ledgeradd == true){
ledgertable.add(new Ledger__c());
ledgeradd =false;
return ledgertable;
public void setledgertable(List<Ledger__c> ledgertable){this.ledgertable= ledgertable;}

public list<Ledger__c> editLedger{get;set;}

public void editLedger() {
editid = ApexPages.currentPage().getParameters().get('editid');
editLedger = [ SELECT Id,Name,Account_Name__c,Account_Number__c,Account_Type__c,Description__c,Notes__c,Sub_Account__c FROM Ledger__c where Id =:editid];
public void updateLedger(){
upsert ledgertable;





<apex:page controller="newpage">
<apex:form >
<apex:pageblock >
<apex:pageBlockSection title="General Ledgers" id="ledgerlist" columns="1">

<apex:pageBlockSectionItem >
<apex:inputcheckbox value="{!addglopp}">
<apex:actionsupport event="onchange" />
<apex:outputLabel value="Add GL Information to opportunities"></apex:outputLabel>

<apex:outputPanel id="glgr">
<apex:outputPanel rendered="{!addglopp}">

<apex:pageblocktable value="{!ledgertable}" var="lgredit" id="lgrtable" cellspacing="-10px" styleclass="datatables">
<apex:variable value="0" var="rowNumlgr"/>
<apex:column headerValue="Account Name">
<apex:outputField value="{!lgredit.Account_Name__c}" rendered="{!IF(lgredit.Id == editid ,false,true)}"/>
<apex:inputField value="{!lgredit.Account_Name__c}" rendered="{!IF(lgredit.Id == editid,true,false)}" styleClass="aname{!rowNumlgr}"/>
<apex:column >
<apex:commandbutton action="{!editLedger}" value="Edit" rerender="glgr" rendered="{!IF(lgredit.Id == editid ,false,true)}" >
<apex:param name="editid" value="{!lgredit.Id}"/>
<apex:commandbutton action="{!updateLedger}" value="Update" rendered="{!IF(lgredit.Id == editid ,true ,false)}"/ >
<apex:param name="updateid " value="{!lgredit.Id}"/>

<apex:commandButton action="{!ledgerNewTable}" value="Add GL Account" rerender="glgr" rendered="{!addglopp}"/>




Thanks in advance

Adam HowarthAdam Howarth



I had a similar problem which turned out to be the output panel I was using. I, like you, had said to render it based on a value in the controller.


So change:


<apex:outputPanel rendered="{!addglopp}">






Let me know. I still dont know why it is happening though.