Public class productavailcheck{

    public string PID{get; set;}
    public list<inventory__c> productlist{get; set;}

    public productavailcheck(){

        productlist   =[select Stocks__c,productid__c,name from Inventory__c where productid__c =: PID];


    public pagereference finalbuybutton(){

        for(inventory__c stcheck : productlist)

                productlist.stocks__c = productlist.stocks__c - 1;

        update productlist;

        return null;


PID is passed from another VF page through pagereference. in the if condition when i try to use products__c or stocks__c ,it shows me the error

Error: Compile Error: Variable does not exist: stocks__c at line 19 column 18

and when that if block is empty, no compile errors are there. What is that i am doing wrong?


Because List does not have any property named Stocks__c. You need to reference the individual record, not the collection.


for (Inventory__c record : productList)
    productList.Stocks__c ...


for (Inventory__c record : productList)
    record.Stocks__c ...

In your case, you need to change productList.Stocks__c to stcheck.Stocks__c.


Productlist is a list of Inventory__c objects. And your are trying to access stocks__c from the List, whereas you should access it from individual record. Use [] operator to access the record from the list.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.