You can't bind something dynamically, because there's only one
HtmlPanelGrid in your component tree. It's just used multiple times
with different data sets to render output.
I perform similar operations like this:
<h:column>
<h:panelGroup>
<h:commandLink rendered="#{mycondition}" ... />
<h:outputText rendered="#{not mycondition}" ... />
</h:panelGroup>
</h:column>
For what it's worth, the error you get is because the binding takes
place while the component tree is being built, not while the rows are
being rendered. So row will always be null at that time of
execution.
On 10/24/05, Stefan Gesigora <[EMAIL PROTECTED]> wrote:
>
>
>
> Hi folks!
>
>
>
> Problem:
>
> I wanna show a Link in a datatable if the user has a specific right and if
> he hasn't I wanna show only text.
>
> If I use the rendered tag the text wasn't shown if rendered = false.
>
> So I tried to put an HtmlPanelGrid into my datatable with the attribute:
> binding="#{row.testPanel}" (row is the var for the rows…).
>
>
>
> But it didn't work. I got error messages like this:
>
> "Error setting property 'testPanel' in bean of type null"….
>
>
>
> What can I do except writing a custom component….???
>
>
>
> regards,
>
> Stefan