You need to sign in to do that
Don't have an account?

Looking up a subset of data in a controller
I'm trying to figure out how to look up the names of all users who has access to a certain record, and display those for each record on a VF page.
Ideally, I want to get that data directly in the getNoteList method. But then I can't return the results as a Note__c object.
The other option is to use the getRecipientList method, but then I need to pass a parameter to it (like the Id of the Note__c object), and I can't do that without using a button, can I?
This is what I have so far:
VisualForce page:
<apex:page controller="NoteboardController"> <apex:repeat value="{!noteList}" var="n" rendered="{!$ObjectType.Note__c.accessible}"> <div> <b>From: </b><apex:outputText value="{!n.owner.Name}"/><br/> <b>To: </b> <apex:repeat value="{!recipientList}" var="r"> <apex:outputText value="{!r.Name}"/> </apex:repeat> <br/><br/> <apex:outputText value="{!n.Name}"/><br/><br/> <apex:outputText value="{!n.Note_body__c}"/> </div> </apex:repeat> <apex:outputText value="You don't have access the Note object" rendered="NOT({!$ObjectType.Note__c.accessible})"/> </apex:page>
Controller:
public with sharing class NoteboardController { public NoteboardController() { } public Note__c[] getNoteList() { Note__c [] noteList; noteList = [SELECT Id, Name, Note_body__c, owner.Name FROM Note__c]; return noteList; } public User[] getRecipientList() { //Get the name of THE FIRST user who has access to THE FIRST of the displayed Notes Note__c [] noteList; noteList = [SELECT Id, Name, Note_body__c, owner.Name FROM Note__c]; Note__Share [] noteShare; noteShare = [SELECT UserOrGroupId FROM Note__Share WHERE ParentId = :noteList[0].Id]; User [] recipientList; recipientList = [SELECT Name FROM User WHERE Id = :noteShare[0].UserOrGroupId]; return recipientList; //Get the names of ALL users who has access to the displayed Notes //User [] recipientList; //recipientList = [SELECT Name FROM User WHERE Id IN (SELECT UserOrGroupId FROM Note__Share)]; //return recipientList; } }