You need to sign in to do that
Don't have an account?
VF Page Error - Could not resolve the entity from <apex:inputField> value binding
Hello,
I am new to VF pages and I'm getting an error but I don't know what it means. My error when I try to save the VF page is:
Error: Could not resolve the entity from <apex:inputField> value binding '{!test.Input_1__c}'. <apex:inputField> can only be used with SObject fields.
Below is my VF page and Controller:
VF:
<apex:page standardController="Account" tabStyle="Account" extensions="TestController3">
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection columns="2">
<apex:inputField value="{!test.Input_1__c}"/>
<apex:inputField value="{!test.Input_2__c}"/>
</apex:pageBlockSection>
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!Save}"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
Controller:
public class TestController3{
public List<Test_Object__c> test {get; set;}
private final Account acct;
public TestController3(ApexPages.StandardController myController) {
acct=(Account)myController.getrecord();
test= new List<Test_Object__c>();
Test_Object__c test2 = new Test_Object__c();
test2.Company_Name_Test__c = acct.id;
test.add(test2);}
public PageReference save() {
insert test;
PageReference home = new PageReference('/home/home.jsp');
home.setRedirect(true);
return home;
}
}
Can someone help? Thanks,
John
Looks like test is a list, not just an object. You need to either return a single object from the controller, or change the page to iterate over the list.....
Thanks for the input. I'm not quite sure how to do either of those, but I will look around to see what I can find.
Try this:
<apex:page standardController="Account" tabStyle="Account" extensions="TestController3">
<apex:form >
<apex:pageBlock >
<apex:dataTable value="{!test}" var="data" id="theTable" rowClasses="odd,even" styleClass="tableClass">
<apex:column>
<apex:facet name="header">Input 1</apex:facet>
<apex:inputField value="{!data.Input_1__c}"/>
</apex:column>
<apex:column>
<apex:facet name="header">Input 2</apex:facet>
<apex:inputField value="{!data.Input_2__c}"/>
</apex:column>
</apex:datatable>
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!Save}"/>
</apex:pageBlockButtons>
</apex:pageBlock>
</apex:form>
</apex:page>
Thanks. Your page worked and I actually got it to work another way as well. However, the problem I am having now is that the company name that is suposed to pre-populate from the Account is not doing so. Any ideas on that? Here's the updated VF page:
<apex:page standardController="Account" tabStyle="Account" extensions="TestController3">
<apex:form >
<apex:pageBlock title="Test" >
<apex:pageBlockButtons >
<apex:commandButton value="Save" action="{!save}" rerender="error" />
</apex:pageBlockButtons>
<apex:pageBlockTable value="{!test}" var="a" id="table">
<apex:column headerValue="Company Name">
{!a.Company_Name_Test__c}
</apex:column>
<apex:column headerValue="Input 1">
<apex:inputField value="{!a.Input_1__c}"/>
</apex:column>
<apex:column headerValue="Input 2">
<apex:inputField value="{!a.Input_2__c}"/>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>