Я хочу нажать на изображение (commandLink), которое перенаправляет на контроллеры, которые вычисляют количество щелчков и обновляет поле в объекте по возвращении. Я не хочу перенаправлять страницу, однако должно появиться всплывающее окно, чтобы пользователь загружает файл из Documents.
Вот мой код. Может кто-нибудь сказать мне, как заставить работать outputlink .., хотя мой счетчик работает нормально.
<apex:pageBlockTable value="{!Docs}" var="d" rendered="{!if(Docs.size>0,true,false)}">
<apex:column >
<apex:commandLink action="{!incrementCounter}">
<apex:image url="{!URLFOR($Resource.LibraryImages)}" title="Click to Download" />
<apex:param assignTo="{!SelectedId}" name="selId" value="{!d.Id}"/>
<apex:outputLink value="/servlet/servlet.FileDownload?file={!d.Document_Id__c}"/>
</apex:commandLink>
</apex:column>
<apex:column headerValue="Downloaded" >
<apex:outputText value="{!d.Counter__c}" />
</apex:column>
</apex:pageBlockTable>
-------------------------------------------
public pagereference incrementCounter()
{
UpdateCount = [select id, counter__c from Document_Details__c where id =:SelectedId];
Decimal num= updatecount.counter__c;
updatecount.counter__c=num+1;
update updatecount;
Docs.clear();
// to get the updated values from the object
Docs=[Select id, Name__c, Document_Id__c, counter__c,Uploaded_by__c,Type__c,Description__c,Document_Created_On__c,My_Library__c From
Document_Details__c where My_Library__c=: MyLib.id];
return null;
}
Я попытался частично обновить страницу, используя outputlink, поддержку действий и повторное рендеринг, но это не сработало, поэтому я подумал об использовании commandlink.