You need to sign in to do that
Don't have an account?
praveen murugesan
Unknown property 'VisualforceArrayList.name'
Hello All,
I cant save the VF page code it is showing this error Unknown property 'VisualforceArrayList.name'.
Previously ie., two days before the code was saved and worked correctly. But today I was tried to save the same code but I cant save. Its because of related object's fields. Any suggestions.?
My page code:
<apex:pageBlockTable value="{!emplist}" var="emp" >
<apex:column headerValue="Name">
<apex:outputText value="{!emp.User__r.name}" />
</apex:column>
</apex:pageBlockTable>
Controller Code:
List<Employee__c> emplist = [select ID,Name,user__c,User__r.name from Employee__c ];
Fields:
User__c is a custom filed in Employee__c which related to user object.
Thanks.
I cant save the VF page code it is showing this error Unknown property 'VisualforceArrayList.name'.
Previously ie., two days before the code was saved and worked correctly. But today I was tried to save the same code but I cant save. Its because of related object's fields. Any suggestions.?
My page code:
<apex:pageBlockTable value="{!emplist}" var="emp" >
<apex:column headerValue="Name">
<apex:outputText value="{!emp.User__r.name}" />
</apex:column>
</apex:pageBlockTable>
Controller Code:
List<Employee__c> emplist = [select ID,Name,user__c,User__r.name from Employee__c ];
Fields:
User__c is a custom filed in Employee__c which related to user object.
Thanks.
Check below links.....
https://developer.salesforce.com/forums/ForumsMain?id=906F000000096aVIAQ
https://developer.salesforce.com/forums/ForumsMain?id=906F00000008wtMIAQ
Thanks,
Rockzz
You have created two way relationship with same name so this issue has been occurs.
Refer below link:
http://www.tgerm.com/2013/06/adding-new-fields-can-break-existing.html
Thank You,
Hitesh Patel
SFDC Certified Developer & Administrator & Advanced Administrator & Sales cloud consultant
Email :- hiteshpatel.aspl@gmail.com
My Blog:- http://mrjavascript.blogspot.in/
In your apex:outputText tag, you are using 'emp.user__r.name'. The 'emp', which is a list, does not have a name property. It is the list item which has that property. You need to reference the name that refers to the list item, and not the list itself.
Please try it out and if this help, please mark this as a best answer so that it will be useful for others who have a similar question.
Thanks,
Shashank
Hi I have changed the var name which i have used as list variable eventhough I cant save the code.
@hitesh90,
Here I have used custom controller with query. The query will return the all the values which I have used in page.
@Shashank_SFDC,
If I understood your suggestion correctly means in that query I have queried user__r.name, user__c which I have used to display in the page. If I am wrong pls explain me bit briefly.
Thanks
One more important thing 2 days before same code worked perfectly. Today I cant save the same code. (I was tried to save the same code with adding space).
And if i tried to save my code with emp.user__c only means it is getting saved but not with emp.user__r.name
Thanks
As suggested by @hitesh90, please check for ambiguous relationships, i.e., 2 relationships having the same name.
Thanks,
Shashank
My VF :-
<apex:page standardController="Client__c" extensions="TestController">
<apex:form>
<apex:pageblock>
<apex:pageBlockTable value="{!cllist}" var="emp" >
<apex:column headerValue="Name">
<apex:outputText value="{!emp.Contact__r.name}" />
</apex:column>
</apex:pageBlockTable>
</apex:pageblock>:-
</apex:form>
</apex:page>
My Controller :-
public class TestController
{
public List<Client__c> clList{get;set;}
public TestController(ApexPages.StandardController controller) {
clList = [select ID,Name,Contact__c,Contact__r.name from Client__c where id='a0290000007aSE9'];
}
}
For me all the objects fields where working but user objects fields only not accessible.
Eg,
My page code:
<apex:pageBlockTable value="{!emplist}" var="emp" >
<apex:column headerValue="Name">
<apex:outputText value="{!emp.User__r.name}" /> // Here only i am getting error Unknown property 'VisualforceArrayList.name'.
</apex:column>
<apex:column headerValue="User ID">
<apex:outputText value="{!emp.user__c}" /> //It is working fine
</apex:column>
<apex:column headerValue="Dept">
<apex:outputText value="{!emp.Department__r.name}" /> //It is working fine
</apex:column>
</apex:pageBlockTable>
Controller Code:
List<Employee__c> emplist = [select ID,Name,user__c,User__r.name, Department__r.name from Employee__c ];
Note:
Employee__c has a lookup realation with Department__c and User. So, If I use user__c or Department__r.name it is displaying fine. But if I use User object's fields means it is showing an error.
VF Page :-
<apex:page standardController="Client__c" extensions="TestController">
<apex:form >
<apex:pageblock >
<apex:pageBlockTable value="{!cllist}" var="emp" >
<apex:column headerValue="Name">
<apex:outputText value="{!emp.Contact__r.name}" />
<apex:outputText value="{!emp.User__r.name}" />
</apex:column>
</apex:pageBlockTable>
</apex:pageblock>
</apex:form>
</apex:page>
Apex :-
public class TestController
{
public List<Client__c> clList{get;set;}
public TestController(ApexPages.StandardController controller) {
clList = [select ID,Name,Contact__c,Contact__r.name,User__r.name from Client__c where id='a0290000007aSE9'];
}
}
I agree with you.
For me also it is working in my personal org. But not in this org where I need to show.
Thanks.
Thanks.
I couldn't found the issue. Please let me know if anybody found the reason.
As of now I have acheived this by querying directly from the user object. I have queired and displayed in VF page.ser
Code:
public user us {get;set;}
us = [select id, name from user];
Page:
<apex:outputtext value = "{!us.name}">
<apex:outputtext value = "{!us.id}">
Thanks.