I'm using a Developer Force example to recreate that Visualforce page. It works except for the fact that clicking on the "view" link only works once. How do I make it work for each and every link / case?
Visualforce:
<apex:page controller="MyConsoleController">
<apex:form >
<apex:sectionHeader title="Cases Cockpit"/>
<div id="caseInfo" style="float:left;width:25%">
<apex:pageBlock title="My Cases">
<apex:pageBlockTable value="{!myCases}" var="case">
<apex:column >
<apex:commandLink value="View" action="{!viewCase}">
<apex:param name="caseId" value="{!case.Id}"/>
</apex:commandLink>
</apex:column>
<apex:column headerValue="Subject" value="{!case.Subject}"/>
<apex:column headerValue="Status" value="{!case.Status}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</div>
<div style="float:right;width:73%">
<apex:detail id="caseDetail" subject="{!selectedCase.Id}" relatedList="false" title="false"/>
</div>
<div style="width:100%">
<apex:pageBlock title="Solutions">
<apex:pageBlockTable value="{!solutions}" var="sol">
<apex:column >
<apex:commandLink value="View" action="{!viewSolution}">
<apex:param name="caseId" value="{!sol.Id}"/>
</apex:commandLink>
</apex:column>
<apex:column headerValue="Solution #" value="{!sol.SolutionNumber}"/>
<apex:column headerValue="Name" value="{!sol.SolutionName}"/>
<apex:column headerValue="Status" value="{!sol.Status}"/>
</apex:pageBlockTable>
</apex:pageBlock>
</div>
</apex:form>
</apex:page>
Controller:
public class MyConsoleController {
public Case selectedCase { get; set; }
public Solution[] getSolutions() {
return [SELECT Id, SolutionNumber, SolutionName, Status FROM Solution];
}
public Case[] getMyCases() {
return [SELECT Id, Subject, Status FROM Case WHERE OwnerId = :UserInfo.getUserId()
AND Status != 'Closed'];
}
public PageReference viewCase() {
String caseId = ApexPages.currentPage().getParameters().get('caseId');
selectedCase = [SELECT Id FROM Case WHERE Id = :caseId];
return null;
}
public PageReference viewSolution() {
String solId = ApexPages.currentPage().getParameters().get('solId');
return new PageReference('/' + solId);
}
}