I should probably clarify by saying, it shows the link but just will not fire 
the action when click on it.  Another word, the rendered test is successful on 
panelgrid (hence the link is shown), but the test failed when clicked on the 
link.  Scratch my head on this for two days.  Learn a new tricks-of-the-trade, 
priceless...



-----Original Message-----
From: Lim Hock-Chai [mailto:[email protected]] 
Sent: Wednesday, May 09, 2012 3:36 PM
To: MyFaces Discussion
Subject: RE: commandlink not working in panelgrid

Finally got it to work inside panelgrid.  I don't understand it but it works.  
Shasi, I think you are right about the problem is caused by rendered attribute 
being evaluated as false when clicked.  Below is what I did to get it to work.  
Hopefully you or someone can explain why.

The code change that I made to get it to work is on this line only:
<h:panelGrid  rendered="#{not empty sessionScope.MyAccountLoginType and 
sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }">  

It works if I change it to this:
<h:panelGrid  rendered="#{ sessionScope.MyAccountLoginType=='MA'}">   
Note : value of MA is what I have in my message bundle 
"resources.LOGIN_TYPE_MY_ACCOUNT".  Just to be sure, I did <h:outputText 
value="#{resources.LOGIN_TYPE_MY_ACCOUNT} "/> and it output value of MA 
correctly.  Not sure why I can't use it to perform the rendered test.

I tried below and non of them work.  But I don't know why:
<h:panelGrid  rendered="#{not empty sessionScope.MyAccountLoginType and 
sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }">  

<h:panelGrid  rendered="#{not empty sessionScope.MyAccountLoginType and 
sessionScope.MyAccountLoginType=='MA' }"> 

<h:panelGrid  rendered="${not empty sessionScope.MyAccountLoginType and 
sessionScope.MyAccountLoginType=='MA' }"> 

 
-----Original Message-----
From: Lim Hock-Chai [mailto:[email protected]] 
Sent: Wednesday, May 09, 2012 1:52 PM
To: MyFaces Discussion
Subject: RE: commandlink not working in panelgrid

I added an onclick="alert(#{not empty sessionScope.MyAccountLoginType and 
sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT })" on the 
commandlink element and the alert showing value of true when I click on the 
link.


                <h:panelGrid  
                                rendered="#{not empty 
sessionScope.MyAccountLoginType and
                                                                        
sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }">
                        <h:outputText value=" "/>
                        <h:outputText value="|"/>
                        <h:commandLink  
                                immediate="true" 
                                onclick="alert(#{not empty 
sessionScope.MyAccountLoginType and 
sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT })" 
                                style="CURSOR: pointer"  
                                
action="#{commonTaskBean.fromMSAMBackToMyAccount}">
                                <h:outputText value="My Account"/>
                        </h:commandLink>
                        <h:outputText value="|"/>
                </h:panelGrid>

-----Original Message-----
From: Shasi Mitra [mailto:[email protected]] 
Sent: Wednesday, May 09, 2012 1:36 PM
To: MyFaces Discussion
Subject: Re: commandlink not working in panelgrid

After u click the link also the expression in the rendered attribute is 
evaluated. That time it should be returning Faldo and hence ur action isn't 
being fired. If u remove all the rendered attributes or keep ur bean in session 
scope, it should work. Try printing the expression u gave in the rendered 
attribute and check. 

Sent from my iPhone

On May 9, 2012, at 11:59 PM, Lim Hock-Chai <[email protected]> 
wrote:

> I tried both session and request scopes.  Both failed to work.  The thing is 
> that the commandlink is showing on the page, which would mean that the 
> rendered condition in the panelGroup or panelgrid is ok.  It just that when I 
> click on the link that is inside the panelgroup/panelgrid, it does not work.  
> I even tried not using any rendered condition on the panelGroup/panelGrid, 
> the link still not working.  Oddest thing.
> 
> 
> 
> -----Original Message-----
> From: Shasi Mitra [mailto:[email protected]] 
> Sent: Wednesday, May 09, 2012 1:12 PM
> To: MyFaces Discussion
> Subject: Re: commandlink not working in panelgrid
> 
> Are u sure ur bean is in session scope? Befor the action event is fired, it's 
> verified whether the grid is rendered or not. So if the bean is in request 
> scope, it returns False and therefore the link's action isn't fired. 
> 
> Sent from my iPhone
> 
> On May 9, 2012, at 9:57 PM, Lim Hock-Chai <[email protected]> 
> wrote:
> 
>> I'm currently using myfaces 1.1.9 for my web app.  I'm having some problems 
>> with commandlink not working correctly for me.  It appears that when 
>> commandlink is inside of the panelgrid, it is not calling the method 
>> specified in the action attr.  But it works fine if I put it outside of the 
>> panelgrid.  Strange part is that I've had other jsp that have commandlink 
>> inside datatable and they work fine also.  This is the first time I use it 
>> inside a panelgrid.
>> 
>> See code below.  The first commandlink is, which is not inside of panelgrid, 
>> works fine.  The 2nd commandlink is inside of panelgrid and it is not 
>> working (not calling back-end bean method)
>> 
>> <jsp:root version="2.0"
>>   xmlns:jsp="http://java.sun.com/JSP/Page";
>>    xmlns:c="http://java.sun.com/jsp/jstl/core";
>>    xmlns:f="http://java.sun.com/jsf/core";
>>    xmlns:h="http://java.sun.com/jsf/html";
>>    xmlns:t="http://myfaces.apache.org/tomahawk";
>>    xmlns:a4j="http://richfaces.org/a4j";>
>> 
>> <f:subview>
>>   <f:loadBundle var="resources" basename="com.arch.myaccount.jsf.Resources"/>
>>   <h:form id="MSAMHeaderOtherForm">
>> 
>>       <!-- commandlink below works fine -->
>>       <h:outputText value="|"/>
>>       <h:commandLink  immediate="true" style="CURSOR: pointer"  
>> action="#{commonTaskBean.fromMSAMBackToMyAccount}" >
>>           <h:outputText value="My Account"/>
>>       </h:commandLink>
>>       <h:outputText value="|"/>
>> 
>>       <!-- commandlink below does not work -->
>>       <h:panelGroup  
>>               rendered="#{not empty sessionScope.MyAccountLoginType and
>>                                   
>> sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }">
>>           <h:outputText value=" "/>
>>           <h:outputText value="|"/>
>>           <h:commandLink  immediate="true" style="CURSOR: pointer"  
>> action="#{commonTaskBean.fromMSAMBackToMyAccount}">
>>               <h:outputText value="My Account"/>
>>           </h:commandLink>
>>           <h:outputText value="|"/>
>>       </h:panelGroup>
>>   </h:form>
>> </f:subview>
>> </jsp:root>    

Reply via email to