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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to