function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Karthik Anikode KannanKarthik Anikode Kannan 

Adding ActionSupport in a PageBlock table

I have a Pageblock table, which gets values from an apex Class , and Displays in a VisualForce page.
It has a CheckBox, and a Text Box in each row. When the Check Box is checked, the Text Box should be enabled. When the Check Box is unchecked, then the Text Box should be disabled. I cannot add actionSupport in a PageBlockTable.
This is the VisualForce Code :
<apex:pageBlock title="Practices">
<apex:pageBlockTable title="Practices" value="{!pPracticeList}" var="p" headerClass="headerStyle" columnsWidth="3,10,6">
<apex:column headerClass="headerStyle" width="3"><apex:inputCheckbox value="{!p.selected}"/></apex:column>
<apex:column headerValue="Practice Name" headerClass="headerStyle" width="10">
<apex:outputText value="{!p.Practice}" /> </apex:column>
<apex:column headerValue="Percentage" headerClass="headerStyle"><apex:inputText size="6" value="{!p.percentage}" maxlength="6"/> </apex:column>
</apex:pageBlockTable>
<center>
<apex:commandButton value="Save" action="{!save}"/>

And This is the Apex Code of the Class :
public class PracticeDetails {

 


public Decimal practicesum = 0;
public List<Decimal> SelectedPercentageValues { get; set; }
public List<String> SelectedValues { get; set; }
public List<pPractice> pPracticeList{set;get;}
public List<pPractice> pPracticeselectedList {set;get;}
public List<PracticeBreakUp__c> PracticenotselectedList {set;get;}
public List<PracticeBreakUp__c> practicebreakuplist {set;get;}
public List<PracticeBreakUp__c> practicebreakupdatabaselist {set;get;}
public List<String> pageblockvalues {set; get;}
public List<String> commprefvalue {set; get;}
public Id revenueId{set;get;}
public PracticeBreakUp__c practicebreakup = new PracticeBreakUp__c(Name = 'Test');
public String pageURL {get;set;}
public String PracticeName {get;set;}
public String id {get;set;}

public PageReference cancel() {
return null;
}

public void getPracticeValues()
{

revenueId = ApexPages.currentPage().getParameters().get('revenueId');

practicebreakupdatabaselist = [SELECT Bizcon_Percentage__c,BPM_Percentage__c,Clodu_Percentage__c,
Core_Percentage__c,CreatedById,CreatedDate,DW_BI_Percentage__c,
ECM_Percentage__c,FSC_Percentage__c,FY13Q1__c,FY13Q2__c,FY13Q3__c,
FY13Q4__c,FY14Q1__c,FY14Q2__c,FY14Q3__c,FY14Q4__c,FY__c,Id,
IsDeleted,ISQ_Percentage__c,LastModifiedById,LastModifiedDate,
Mobility_Percentage__c,Name,Other_Percentage__c,Practice_Name__c,
RevenueBreakUp__c,SAP_Percentage__c,SystemModstamp FROM PracticeBreakUp__c
where RevenueBreakUp__c = :revenueId];

practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);
if(practicebreakupdatabaselist == null) {}
/* practicebreakupdatabaselist = [SELECT Practice_Name__c FROM PracticeBreakUp__c
where RevenueBreakUp__c = :revenueId];*/
System.debug('***practicebreakupdatabaselist inside getPracticeValues() method' + practicebreakupdatabaselist );
// getPractices();
System.debug('***pPracticeList***' + pPracticeList);
for (PracticeBreakUp__c practicebreakupdatabase :practicebreakupdatabaselist)
{
System.debug('*****practicebreakupdatabase******' + practicebreakupdatabase );

for(pPractice pPracticeentity : pPracticeList)
{
System.debug('*****pPracticeentity****' + pPracticeentity );


if(pPracticeentity.Practice == practicebreakupdatabase.Practice_Name__c)
{
System.debug('*****practicebreakupdatabase.Practice_Name__c*****' + practicebreakupdatabase.Practice_Name__c);

pPracticeentity.selected = true;
if(practicebreakupdatabase.Practice_Name__c == 'BPM') {pPracticeentity.percentage = practicebreakupdatabase.BPM_Percentage__c;BREAK;}
else if(practicebreakupdatabase.Practice_Name__c == 'Core (JAVA/.NET/C++)') {pPracticeentity.percentage = practicebreakupdatabase.Core_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'ECM') {pPracticeentity.percentage = practicebreakupdatabase.ECM_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'DW / BI') {pPracticeentity.percentage = practicebreakupdatabase.DW_BI_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'MOBILITY') {pPracticeentity.percentage = practicebreakupdatabase.Mobility_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'CLOUD') {pPracticeentity.percentage = practicebreakupdatabase.Clodu_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'SAP') {pPracticeentity.percentage = practicebreakupdatabase.SAP_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'FSC') {pPracticeentity.percentage = practicebreakupdatabase.FSC_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'ISQ') {pPracticeentity.percentage = practicebreakupdatabase.ISQ_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'BIZCON') {pPracticeentity.percentage = practicebreakupdatabase.Bizcon_Percentage__c;break;}
else if(practicebreakupdatabase.Practice_Name__c == 'OTHER') {pPracticeentity.percentage = practicebreakupdatabase.Other_Percentage__c;break;}
}
}

}





}



public PracticeDetails(){
revenueId = ApexPages.currentPage().getParameters().get('revenueId');

pPracticeList = new List<pPractice>();

PracticenotselectedList = new List<PracticeBreakUp__c>();
SelectedPercentageValues = new List<Decimal>();
SelectedValues = new List<String>();
pageblockvalues = new List<String>();
Commprefvalue = new List<String>();
Schema.DescribeFieldResult CommprefField = Schema.sObjectType.Opportunity.fields.Practise__c;
Schema.PicklistEntry [] Commpref = CommprefField.getPickListValues();

for(Schema.PicklistEntry val : Commpref)
{
Commprefvalue.add(val.getLabel());

}

// for(){



// }
pPracticeList = new List<pPractice>();
Commprefvalue = new List<String>();

for(Schema.PicklistEntry val : Commpref)
{
//Commprefvalue.add(val.getLabel());

pp = new pPractice();

pp.selected = false;
pp.Practice = val.getLabel();
pPracticeList.add(pp);

}
getPracticeValues();
}




public class pPractice {
public String Practice {set;get;}
public Boolean selected {set;get;}
public Decimal percentage {set;get;}

public pPractice ()
{
}
public pPractice (String P, Decimal per)
{
selected = false;
Practice = p;
percentage = per;
}
}
public void save() {
insertvalues();
}
public pPractice pp = null;
public void deletevalues ()
{
List<practicebreakUp__c> dblist = [Select Id from practiceBreakUp__c where ReveNueBreakUp__c = :revenueId];
delete dblist;
}

public void insertvalues () {
pPracticeselectedList = new List<pPractice>();
for (pPractice prac : pPracticeList)
{
if(prac.selected == true)
{

practicesum = practicesum + prac.percentage;
pPracticeselectedList.add(prac);
}
}
practicebreakuplist = new List<PracticeBreakUp__c>();
System.debug('practicesum***' + practicesum );
if(practicesum > 99.9 && practicesum < 100.01)
{
for (pPractice prac : pPracticeselectedList)
{
if(prac.Practice.equals('BPM')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.BPM_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'BPM';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('Core (JAVA/.NET/C++)')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.Core_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'Core (JAVA/.NET/C++)';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('ECM')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.ECM_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'ECM';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('DW / BI')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.DW_BI_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'DW / BI';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('MOBILITY')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.Mobility_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'MOBILITY';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('CLOUD')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.Clodu_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'CLOUD';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('SAP')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.SAP_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'SAP';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('FSC')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.FSC_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'FSC';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('ISQ')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.ISQ_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'ISQ';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('BIZCON')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.Bizcon_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'BIZCON';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
else if(prac.Practice.equals('OTHER')){practicebreakup = new PracticeBreakUp__c(Name = 'Test',RevenueBreakUp__c = revenueId);practicebreakup.Other_Percentage__c = prac.percentage;practicebreakup.Practice_Name__c = 'OTHER';practicebreakup.RevenueBreakup__c = revenueId;practicebreakuplist.add(practicebreakup);}
}

deletevalues();
upsert practicebreakuplist;
}
else
{
ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'The Total Percentage should be 100%');
ApexPages.addMessage(myMsg);
}
}
}

 

I have been trying to do this since 1 Week , but Could not Progress on This.
I need any Solution , using JavaScript or the ActionSupport.

Best Answer chosen by Admin (Salesforce Developers) 
SFDC_VikashSFDC_Vikash

You can use following code to enable and disable a textBox according to checkbox checked :

 

<apex:page standardController="Account" recordSetVar="accs">
<script>
  function toggleDisable(chkBox,textBoxId){  
    document.getElementById(textBoxId).disabled = !chkBox.checked;    
  }
</script>
 <apex:form >
 <apex:pageBlock >
 <apex:pageBlockTable value="{!accs}" var="acc">
   <apex:column >
     <apex:inputCheckbox onclick="toggleDisable(this,'{!$Component.textBox}');"/>
   </apex:column>
   <apex:column headerValue="Enter Value">
     <apex:inputText id="textBox" disabled="true"></apex:inputText>
   </apex:column>
   <apex:column value="{!acc.Name}"/>    
 </apex:pageBlockTable>
 </apex:pageBlock>
 </apex:form>
</apex:page>

 

Hope this will help you out.

 

 

 

All Answers

SFDC_VikashSFDC_Vikash

You can use following code to enable and disable a textBox according to checkbox checked :

 

<apex:page standardController="Account" recordSetVar="accs">
<script>
  function toggleDisable(chkBox,textBoxId){  
    document.getElementById(textBoxId).disabled = !chkBox.checked;    
  }
</script>
 <apex:form >
 <apex:pageBlock >
 <apex:pageBlockTable value="{!accs}" var="acc">
   <apex:column >
     <apex:inputCheckbox onclick="toggleDisable(this,'{!$Component.textBox}');"/>
   </apex:column>
   <apex:column headerValue="Enter Value">
     <apex:inputText id="textBox" disabled="true"></apex:inputText>
   </apex:column>
   <apex:column value="{!acc.Name}"/>    
 </apex:pageBlockTable>
 </apex:pageBlock>
 </apex:form>
</apex:page>

 

Hope this will help you out.

 

 

 

This was selected as the best answer
Karthik Anikode KannanKarthik Anikode Kannan

Thanks for the Solution Vikash. It was a Great Help to me.

SFDC_VikashSFDC_Vikash

Your welcome karthik, if it is helpful for u please mark it as solution.