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
NervosaNervosa 

Refering to inputText in controller

Hello!

The deal is - i've got 2 methods in my controller: the one to ADD:

 

   public PageReference add(){

        Item__c NewItem = new Item__c(            
                Name = NewItemName,
                Item_Price__c = NewItemPrice,
                Items_Available__c = NewItemQuantity,
                Item_Type__c = NewItemType,
                Release_Date__c = NewItemReleaseDate);
                insert NewItem; 
                ViewData();
                PageReference curPage = ApexPages.currentPage(); 
                curPage.getParameters().put('success','true');
                curPage.getParameters().put('id',Apexpages.currentPage().getParameters().get('id'));
                curPage.setRedirect(true);
                return null; 
    }     

 and the second to DELETE:

   public PageReference del() {

        Item__c ItemToDel = [SELECT id
                             FROM Item__c
                             WHERE id = :IdToDel];
        delete ItemToDel;   
               
        PageReference curPage = ApexPages.currentPage(); 
        curPage.getParameters().put('success','true');
        curPage.getParameters().put('id',Apexpages.currentPage().getParameters().get('id'));
        ViewData();
        curPage.setRedirect(false);       
        return curPage;
            
    }    

 Also there is a set of inputText elements on my VF page:

 

    <apex:inputText value="{!NewItemName}" label="Name" style="text-align:left"/>
    <apex:selectList id="types" label="Type" size="1" value="{!NewItemType}">

            <apex:selectOptions value="{!types}">
                
            </apex:selectOptions>
        </apex:selectList>  
    <apex:inputText value="{!NewItemPrice}" label="Price" style="text-align:left" />
    <apex:inputText value="{!NewItemQuantity}" label="Quantity" style="text-align:left"/>
    <apex:inputText value="{!NewItemReleaseDate}"  label="Release Date"/>

 It all works pretty well but there is one problem - old values remain in inputText elements after an item is ADDED. So i want to refer to them after adding and assign zeros or NULL's them. Do you think i can do it?

 

Thanks in advance.

Best Answer chosen by Admin (Salesforce Developers) 
Saikishore Reddy AengareddySaikishore Reddy Aengareddy

Try this in you add method..

 

public PageReference add(){

Item__c NewItem = new Item__c(
Name = NewItemName,
Item_Price__c = NewItemPrice,
Items_Available__c = NewItemQuantity,
Item_Type__c = NewItemType,
Release_Date__c = NewItemReleaseDate);
insert NewItem;
ViewData();
PageReference curPage = ApexPages.currentPage();
curPage.getParameters().put('success','true');
curPage.getParameters().put('id',Apexpages.currentPage().getParameters().get('id'));
curPage.setRedirect(true);
NewItemName=null;
NewItemQuantity=null;
NewItemPrice = null;
NewItemReleaseDate = null;

return null;
}

All Answers

logontokartiklogontokartik

Yeah you can just initialize the values in your add method, something after you did insert;

 

NewItemPrice = 0;

NewItemQuantity = 0;

NewItemReleaseDate = '';

NewItemName = '';

NewItemType = '';

 

and rerender the section in your VF Page on CommandButton click to reflect the changes.

 

 

Saikishore Reddy AengareddySaikishore Reddy Aengareddy

Try this in you add method..

 

public PageReference add(){

Item__c NewItem = new Item__c(
Name = NewItemName,
Item_Price__c = NewItemPrice,
Items_Available__c = NewItemQuantity,
Item_Type__c = NewItemType,
Release_Date__c = NewItemReleaseDate);
insert NewItem;
ViewData();
PageReference curPage = ApexPages.currentPage();
curPage.getParameters().put('success','true');
curPage.getParameters().put('id',Apexpages.currentPage().getParameters().get('id'));
curPage.setRedirect(true);
NewItemName=null;
NewItemQuantity=null;
NewItemPrice = null;
NewItemReleaseDate = null;

return null;
}

This was selected as the best answer