The problem is that the grid sets the value of the "id" attribute of each
row to an integer (rather than the string representation of the integer),
but the .element method ends up comparing the integer to its string
representation. For further details, see the issue
<https://github.com/web2py/web2py/issues/1074> I just submitted.
For now, there is a workaround -- instead of passing in a string or integer
as the argument to .element(), you can pass in a compiled regular
expression, which will get compared to the string representation of the _id
instead of the original integer value:
import re
print grid.element(_id=re.compile('2'))
Anthony
On Tuesday, September 22, 2015 at 11:01:49 AM UTC-4, Edward Shave wrote:
>
> I have a sqlform.grid where I found each row (tr) contains an id, so in
> the example row below the id="2"
>
> <tr class="w2p_odd odd with_id" id="2"><td>2</td>...</tr>
>
> I can't work out why the following returns None
>
> print grid.element('#2')
>
> I also tried grid.element(_id='2') but with the same result
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.