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.

Reply via email to