You need to sign in to do that
Don't have an account?
Returned Data in a Data Table must have hyperlinks or reference
Hi,
I have a custom search Page, which looks at a criteria ans then returns a result to the visualforce page back in Pageblock Table.
The returned result now does not have any reference and you cannot click on any data to view the detail page.
How can i return data as a hyperlink to click on it to view detail page?
Any idea / help is highly appreciated.
VF Page:
<apex:page standardController="Account" extensions="SearchAccounts" > <apex:form > <div style="border-width:2px;border-style:solid;border-color:blue;"> <apex:sectionHeader Title=" Step 1" subtitle="Search For Already Existing Accounts" /> </div> <br/> <apex:PageBlock Title="Search Accounts"> <apex:PageBlockSection columns="1"> <apex:inputField value="{!newAcct.Name}"/> <apex:InputField value="{!newAcct.Site}"/> <apex:inputField value="{!newAcct.BillingCity}"/> </apex:PageBlockSection> <div style="position:relative;left:230px;"> <apex:commandButton value="Next" action="{!SearchAccount}" /> <apex:commandButton value="Cancel" /> </div> <!-- Display error message --> <apex:pagemessage strength="2" title="Error!!" severity="error" detail="An Account(s) Already Exists !!!" rendered="{!errormsg}"/><!-- End of error message --> <apex:pageBlockTable value="{!Results}" var="Accts" rendered="{!NOT(ISNULL(Results))}" title="Search Results"> <apex:column headerValue="Account Name"> <apex:outputText value="{!Accts.Name}"> </apex:outputText> </apex:column> <apex:column headerValue="Account Site"> <apex:outputText value="{!Accts.Site}"> </apex:outputText> </apex:column> <apex:column headerValue="Billing City"> <apex:outputText value="{!Accts.BillingCity}"> </apex:outputText> </apex:column> </apex:pageBlockTable> </apex:PageBlock> </apex:form> </apex:page>
Apex Class:
public class SearchAccounts {
Public Account newAcct=new Account();
public SearchAccounts(ApexPages.StandardController controller)
{
}
Public boolean errormsg=false;
Public List<Account> checkDuplicates;
Public Account getnewAcct()
{
return newAcct;
}
public List<Account> getResults(){
return checkDuplicates;
}
Public Pagereference SearchAccount()
{
checkDuplicates=[Select Name, BillingCity, Site FROM Account where Name=:newAcct.Name And Site=:newAcct.Site And BillingCity=:newAcct.Billingcity ];
System.Debug('Size=='+checkDuplicates.Size());
System.Debug('Name=='+newAcct.Name);
System.Debug('Name=='+newAcct.Site);
if(checkDuplicates.Size()==0)
{
PageReference newAccount=new Pagereference('/001/e?nooverride=true');
return newAccount;
}
Else
{
errormsg=true;
return NULL;
}
}
Public Boolean geterrormsg()
{
return errormsg;
}
}
Thanks,
Sales4ce
Try a workaround as per the code given below for getting the view of the record on the click of Account Name :
<apex:column >
<apex:outputLink value="/{!Accts.Id}">{!Accts.name}</apex:outputLink>
<apex:facet> Contact Name</apex:facet>
</apex:column>
Hope this helps.
All Answers
Use an apex:outputLink. In below snippet, replace the bind notation with your accessor
<apex:column headerValue="Name" >
<apex:outputLink value="/{!RelatedISOVO.iso.Id}" target="_top" >{!RelatedISOVO.iso.Name}</apex:outputLink>
</apex:column>
Try a workaround as per the code given below for getting the view of the record on the click of Account Name :
<apex:column >
<apex:outputLink value="/{!Accts.Id}">{!Accts.name}</apex:outputLink>
<apex:facet> Contact Name</apex:facet>
</apex:column>
Hope this helps.