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
Akshit HuriaAkshit Huria 

copy input text values to list from column in page block table in salesforce

---------------VF page------------------------------
<apex:page controller="abc1" >
  <apex:form >
      <apex:pageBlock >
          <apex:pageBlockTable value="{!pqr}" var="a">
              <apex:column headerValue="Gold">
                  <apex:outputtext value="{!a}" />                
              </apex:column>
              <apex:column headerValue="10%">
                  <apex:inputtext value="{!t1}"/>
              </apex:column>
              <apex:column headerValue="30%">
                  <apex:inputtext value="{!t2}"/>
              </apex:column>
              <apex:column headerValue="50%">
                  <apex:inputtext value="{!t3}"/>
              </apex:column>
          </apex:pageBlockTable>
          <apex:pageBlockButtons >
              <apex:commandButton value="Save" action="{!qsave}" />
          </apex:pageBlockButtons>
      </apex:pageBlock>
  </apex:form>
</apex:page>
-----------/VF Page-----------------

-------------controller Class-------------

public class abc1
{
    public List<Decimal> t1 { get; set; }
    public List<Decimal> t2 { get; set; }
    public List<Decimal> t3 { get; set; }
    public List<String> pqr {get; set;}
    public abc1()
    {
        pqr=new List<String>();
        Schema.DescribeFieldResult fieldResult =Account.a__c.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        for( Schema.PicklistEntry f:ple)
       {    
          pqr.add(f.getLabel());
       }    
       System.debug(pqr);
    }
    
    public void qsave()
    {    
        System.debug('1');
        Integer i=0;
        List<Quality__c> qqq =new List<Quality__c>();
        Quality__c ccc;
        for(String x:pqr)
        {    System.debug(x);
            ccc= new  Quality__c(Name=x, ab__c=t1[i]);
            qqq.add(ccc);
            System.debug(qqq);
            i++;
        }  
        try
        {
            upsert qqq;
        }
        catch(System.Exception e)
        {
            System.Debug(e);
        }
    }  
}User-added image
Best Answer chosen by Akshit Huria
Akshit HuriaAkshit Huria
@Technomile Admin 6
Thank You for your support
I tried another way to do this task
--------------VF Page-----------

<apex:page controller="abc1" >
  <apex:form >
      <apex:pageBlock >
          <apex:pageBlockTable value="{!datalist2}" var="a">
              <apex:column headerValue="Gold">
                  <apex:outputtext value="{!a.Name}" />                
              </apex:column>
              <apex:column headerValue="10%">
                  <apex:inputtext value="{!a.ab__c}"/>
              </apex:column>
              <apex:column headerValue="30%">
                  <apex:inputtext value="{!a.bc__c}"/>
              </apex:column>
              <apex:column headerValue="50%">
                  <apex:inputtext value="{!a.cd__c}"/>
              </apex:column>
          </apex:pageBlockTable>
          <apex:pageBlockButtons >
              <apex:commandButton value="Save" action="{!qsave}" />
          </apex:pageBlockButtons>
      </apex:pageBlock>
  </apex:form>
</apex:page>

---------------VF page---------------

----------------Controller Class--------------

public class abc1
{
    public List<Quality__c> datalist2{get;set;}
    public List<Quality__c> getdatalist2()
    {
        return datalist2;
    }
    public List<Quality__c> datalist3{get;set;}
    public List<Quality__c> getdatalist3()
    {
        return datalist3;
    }
    public List<String> pqr {get; set;}
    public List<String> pqrs {get; set;}
    public abc1()
    {
        datalist2=new List<Quality__c>();
        pqr=new List<String>();
        Schema.DescribeFieldResult fieldResult =Account.a__c.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        for( Schema.PicklistEntry f:ple)
       {    
          pqr.add(f.getLabel());
       }
       for(String stringData:pqr)
       {
           datalist2.add(new Quality__c( Name=stringData, ab__c=0.0,bc__c=0.0,cd__c=0.0));
       }    
       System.debug(pqr);
    }
    
    public void qsave()
    {    
        if(datalist2.size()>0)
        {
            insert datalist2;
        }
    }  
}

----------Controller Class----------------------

All Answers

Technomile Admin 6Technomile Admin 6
This can be eassly atchive by using wrapper.
public class abc1
{
    public List<wrapper> wrapList{get;set;}
    
    public abc1(){
        wrapList = new List<wrapper>();
        Schema.DescribeFieldResult fieldResult =Account.a__c.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        
        for(Schema.PicklistEntry f : ple){
            wrapper w = new wrapper();
            w.qqr = f.getLabel();
            wrapList.add(w);
        }
    }
    
    public void qsave(){
        List<Quality__c> qqq =new List<Quality__c>();
        
        for(wrapper w : wrapList){
            Quality__c ccc = new  Quality__c(Name=w.qqr, ab__c=t1);
            qqq.add(ccc);
        }
        try{
            upsert qqq;
        }catch(System.Exception e){
            System.Debug(e);
        }
    }
    
    public class wrapper{
        public String qqr{get;set;}
          public Decimal t1{get;set;}
        public Decimal t2{get;set;}
        public Decimal t3{get;set;}
   }
}

---------------VF page------------------------------
<apex:page controller="abc1" >
  <apex:form >
      <apex:pageBlock >
          <apex:pageBlockTable value="{!wrapList}" var="a">
              <apex:column headerValue="Gold">
                  <apex:outputtext value="{!a.qqr}" />                
              </apex:column>
              <apex:column headerValue="10%">
                  <apex:inputtext value="{!a.t1}"/>
              </apex:column>
              <apex:column headerValue="30%">
                  <apex:inputtext value="{!a.t2}"/>
              </apex:column>
              <apex:column headerValue="50%">
                  <apex:inputtext value="{!a.t3}"/>
              </apex:column>
          </apex:pageBlockTable>
          <apex:pageBlockButtons >
              <apex:commandButton value="Save" action="{!qsave}" />
          </apex:pageBlockButtons>
      </apex:pageBlock>
  </apex:form>
</apex:page>
-----------/VF Page-----------------
Akshit HuriaAkshit Huria

Error Occured

@Technomile Admin 6 On using ab__c=w.t1 it will return null value.

Technomile Admin 6Technomile Admin 6
change the wrapper to

public class wrapper{
        public String qqr{get;set;}
          public Decimal t1{get;set;}
        public Decimal t2{get;set;}
        public Decimal t3{get;set;}
        
        public wrapper(){
            this.qqr = '';
            this.t1=0;
            this.t2=0;
            this.t3=0;
        }
   }
Akshit HuriaAkshit Huria
@Technomile Admin 6
Thank You for your support
I tried another way to do this task
--------------VF Page-----------

<apex:page controller="abc1" >
  <apex:form >
      <apex:pageBlock >
          <apex:pageBlockTable value="{!datalist2}" var="a">
              <apex:column headerValue="Gold">
                  <apex:outputtext value="{!a.Name}" />                
              </apex:column>
              <apex:column headerValue="10%">
                  <apex:inputtext value="{!a.ab__c}"/>
              </apex:column>
              <apex:column headerValue="30%">
                  <apex:inputtext value="{!a.bc__c}"/>
              </apex:column>
              <apex:column headerValue="50%">
                  <apex:inputtext value="{!a.cd__c}"/>
              </apex:column>
          </apex:pageBlockTable>
          <apex:pageBlockButtons >
              <apex:commandButton value="Save" action="{!qsave}" />
          </apex:pageBlockButtons>
      </apex:pageBlock>
  </apex:form>
</apex:page>

---------------VF page---------------

----------------Controller Class--------------

public class abc1
{
    public List<Quality__c> datalist2{get;set;}
    public List<Quality__c> getdatalist2()
    {
        return datalist2;
    }
    public List<Quality__c> datalist3{get;set;}
    public List<Quality__c> getdatalist3()
    {
        return datalist3;
    }
    public List<String> pqr {get; set;}
    public List<String> pqrs {get; set;}
    public abc1()
    {
        datalist2=new List<Quality__c>();
        pqr=new List<String>();
        Schema.DescribeFieldResult fieldResult =Account.a__c.getDescribe();
        List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues();
        for( Schema.PicklistEntry f:ple)
       {    
          pqr.add(f.getLabel());
       }
       for(String stringData:pqr)
       {
           datalist2.add(new Quality__c( Name=stringData, ab__c=0.0,bc__c=0.0,cd__c=0.0));
       }    
       System.debug(pqr);
    }
    
    public void qsave()
    {    
        if(datalist2.size()>0)
        {
            insert datalist2;
        }
    }  
}

----------Controller Class----------------------
This was selected as the best answer