What exactly the problem is? I was trying to display values of Map on visualforce page. This code snippet will help you to understand more.
<apex:repeat value="{!MyMap}" var="M"> <apex:repeat value="{!MyMap[M]}" var="temp"> <apex:outputLabel value="{!temp.Test_Curr__c}"/> </apex:repeat> </apex:repeat>"MyMap" is in my controller having list of account (Map<String , List<Account>>). I just want to bind the currency field value of account with outPutField like this :
<apex:repeat value="{!MyMap}" var="M"> <apex:repeat value="{!MyMap[M]}" var="temp"> <apex:outputField value="{!temp.Test_Curr__c}"/> </apex:repeat> </apex:repeat>But compiler gifted me this : "Error: Could not resolve the entity from <apex:outputField> value binding '{!temp.Test_Curr__c}'. outputField can only be used with SObject fields."
Now it is mandatory for me to bind the value with outPutField as I want the formatting of currency field on my visualforce page.
Using outPutLabel doesn't provide formatting either :
<apex:repeat value="{!MyMap}" var="M"> <apex:repeat value="{!MyMap[M]}" var="temp"> <apex:outputLabel value="{!temp.Test_Curr__c}"/> </apex:repeat> </apex:repeat>So finally I need the Community help, and trust me it is the best place to get your answers quickly.
Workaround for this is using <apex:column> as it provides the sObject field behaviour. So my final code looks something like this :
<apex:pageBlockTable value="{!MyMap}" var="M"> <apex:repeat value="{!MyMap[M]}" var="temp"> <apex:column value="{!temp.Test_Curr__c}" /> </apex:repeat> </apex:pageBlockTable>For reference click here to get community post.
Hope this flaw will be fixed soon as there might be some cases where we do not want to use pageBlockTabel.
Cheers