Thanks Jesse!
I was missing those "+" (concatenation).

Also, justo using row.id doesn't work. I had to bind TableRow's row
parameter to a page variable to make it work.
I added to the page file something like:

<binding name="row" value="thisLP"/>

and then used something like


"ognl:'StringValueInHere' + thisLP.id <http://row.id/> +
'moreStringValueStuff'"

because row.id throw a NoSuchPropertyException.

Thanks for the help!

Marcos.

On 6/18/07, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:

Use double quotes for your javascript function parameters?  Either that or
try writing a javascript template via
http://tapestry.apache.org/tapestry4.1/usersguide/script.html.

Also, it's questionable whether or not you need to actually quote those
characters at all.   Apart from that it looks like you are trying to do
something like this:

"ognl:'StringValueInHere\'referenceToObject\'moreStringStuff'"

This is probably not going to work so well , but a much easier version
that
does work would be:

"ognl:'StringValueInHere' + row.id + 'moreStringValueStuff'"

On 6/15/07, Marcos Chicote <[EMAIL PROTECTED]> wrote:
>
> Hi!
> I'm developing a page where I have a Form and a Table component
(actually
> Table component is not used, I use TableView, TableColumns, etc).
> The idea is that when someone clicks on a TR of the table a JS function
is
> called and the form is filled with information about that row (so the
user
> can edit that row).
>
> Here's the code I'm using:
>
>     <component id="filasTabla" type="contrib:TableRows">
>         <binding name="class" value="literal:textotabla"/>
>         <binding name="element" value="literal:tr"/>
>         <binding name="row" value="ognl:lpActual"/>
>         <binding name="onclick" value="ognl:'javascript:fillForm(
>                                                 \' tableId \',
>                                                 \' 'lpActual.id' \',
> <---------- Here's the problem!
>                                                 \' blablabla \',
>                                                 \' blablabla \',
>                                                 \' 1 \');'"/>
>     </component>
>
> However I keep getting a ognl.ParseException.
> The problem is that I need to pass to the JS function parameters that I
> get
> from the element being rendered by the TableRows component. How do I get
> this done?
> I'm using Tap 4.1.
> I also tried this:
>     <component id="filasTabla" type="contrib:TableRows">
>         <binding name="class" value="literal:textotabla"/>
>         <binding name="element" value="literal:tr"/>
>         <binding name="onclick" value="ognl:'javascript:fillForm(
>                                                 \' tableId \',
>                                                 \' 'row.id' \',
> <----------
> Here's the problem!
>                                                 \' blablabla \',
>                                                 \' blablabla \',
>                                                 \' 1 \');'"/>
>     </component>
>
>
> That didn't work either.
>
> Thanks!
> Marcos
>



--
Jesse Kuhnert
Tapestry/Dojo team member/developer

Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com

Reply via email to