Anthony,
Thank you for (very) quick reaction! And Happy New Year! ;)
Here is an example:
I define a grid in the following action:
def grid_test():
grid = SQLFORM.grid(db.project, formname='grid_test',selectable=[('Test',
lambda ids: 1/0)])
response.view = 'project/grid.load'
return dict(grid=grid)
...of course the expected behavior is that the 'Test' action will cause an
error (division by zero). Indeed, this happens if I simply put such defined
grid as part of regular controller action.
However, when I put it in a component:
{{=LOAD('project','grid_test.load', ajax=True)}}
where the grid_test.load looks like this:
{{=grid}}
Pressing the 'Test' button does not cause the error - presumably because
the selectable action is not executed at all...
I hope this is clear enough. In my code, I actually tried to do a redirect,
but the result is exactly the same - the selectable action does not appear
to execute... I just tested this on:
2.13.4-stable+timestamp.2015.12.26.04.59.39
(Running on nginx/1.4.6, Python 2.7.6)
Krzysztof.
On Thursday, December 31, 2015 at 8:41:46 PM UTC+1, Anthony wrote:
>
> A basic example works for me. Can you show some code that you know
> exhibits the problem?
>
> Anthony
>
> On Thursday, December 31, 2015 at 12:53:53 PM UTC-5, Krzysztof Socha wrote:
>>
>> I noticed a similar thing... I need two grids on a page. As documented,
>> it does not work very well to simply put them in one controller function.
>> Hence, I tried with LOADing a component. This generally works, but I cannot
>> get the selectable actions to work. I have defined custom selectable
>> actions and they work fine if the gird is not inside a component. As soon,
>> as I load it as a component, nothing happens. It seems that the form is
>> submitted, but the selectable action is not executed. A bug somewhere? Or
>> is there another way of doing this?
>>
>> Krzysztof.
>>
>> On Wednesday, October 15, 2014 at 7:46:56 PM UTC+2, LaDarrius Stewart
>> wrote:
>>>
>>> I have a grid inside a component inside a component which has selectable
>>> set to run a function that assigns the ids to a session variable. When
>>> inside the component it does not work when i click submit I can tell that
>>> the page is being reloaded but the callback does not run. I know that the
>>> code works because if I go to the .load page directly and try it works as
>>> expected. But from the component page it doesnt execute the callback.
>>>
>>>
>>>
>>> selectable = [('Create Invoice', lambda ids: [selectabletest(ids)], 'btn
>>> btn-info btn-md')]
>>> grid2 = SQLFORM.grid(query, selectable=selectable,
>>> args=request.args[:1], formname='invgrid', user_signature=False)
>>>
>>> def selectabletest(ids):
>>> session.lambdatest = ids
>>>
>>> This message is for named person(s) only. It may contain confidential
>>> and/or legally privileged information. No confidentiality or privilege is
>>> waived or lost should mis-transmission occur. If you receive this message
>>> in error, delete it (and all copies) and notify the sender. You must not,
>>> directly or indirectly,use, disclose, distribute, print, or copy any part
>>> of this message if you are not the intended recipient. GAD GROUP
>>> TECHNOLOGY, INC. reserves the right to monitor all e-mail communications
>>> through its networks.
>>>
>>> Any views expressed in this message are those of the individual sender,
>>> except where the message states otherwise and the sender is authorized to
>>> state them to be the views of any such entity.
>>>
>>> This e-mail has been virus and content scanned by GAD GROUP TECHNOLOGY,
>>> INC.
>>>
>>
--
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.