Tomeu,

At the moment I'm just letting datatables.net enhance a plain html table 
for me. One of these days I'll probably get around to giving it a json 
datasource but so far it hasn't been a priority for my usage.

As a bonus, here's some of how to update the datatables.net display after 
using the edit dialog. (So just the edited record's row in the datatable 
gets updated rather than a full page refresh)

In controller
#after you'd done the necessary DB updates...

#tell browser to close the jqueryui dialog
response.js =XML( '$("#edit_dialog").dialog("close");')

#prepare for display update 
edit_icon = IMG(_src=URL(c="static",f="images/page_white_edit.png"), 
_alt="Click 
to edit")

#prep javascript code for datatables.net to update the existing row's 
display
#basically just a json list of td values
row_update = simplejson.dumps([updated_record.table.first_name, 
updated_record.table.last_name, updated_record.table2.name, 
    str(A(edit_icon, _href=URL(r=request,f='edit_loader', args=[
updated_record.table.record_id, mode]), _class="updateDialog")), 
    updated_record.table.email, updated_record.table.someother_id])

#using the tr#id method to update table is unreliable (the TR won't have an 
id if it was added dynamically
#instead use the row index provided by datatables.net itself (we passed it 
in via ajax vars)
#essentially fnUpdate(new td values, which row)
response.js += '$("#your_table_selector").dataTable().fnUpdate( '+row_update
+', '+request.vars['datatable_row_index']+',0, false );'

#also using jGrowl to give an acknowledgement
message = T("%s updated") % (updated_record.table.first_name)
response.js += '$.jGrowl("'+message+'");'


And as the second bonus, how to insert a brand new row in the datatable. 
(Below my datatable.net is another always visible LOAD()ed form for 
creating a new record. Upon submission the new record is inserted into the 
existing datatable via javascript returned in web2py's response)

In controller:
#do the database insert then
#prepare for display update 
edit_icon = IMG(_src=URL(c="static",f="images/page_white_edit.png"), 
_alt="Click 
to edit")

table_update = simplejson.dumps([new_record.table.first_name, new_record.
table.last_name, 
    new_record.table2.name, str(A(edit_icon, _href=URL(r=request,f=
'edit_loader', 
    args=[new_record.table.record_id, form.vars.mode]), _class=
"updateDialog")), 
    new_record.table.email, new_record.table.foreign_id])
        
#issue command for adding new row to datatable
response.js = 'vol_table.fnAddData('+table_update+');'

Good luck

~Brian


On Sunday, June 22, 2014 4:44:33 PM UTC-5, Tomeu Roig wrote:
>
> Thanks Brian, nice think to get a full href for pass to the 
> $web2py.component.
>
> I see that you use datatables.net. Do you use some plugin o directly you 
> pass json from controller?
>
> I want use in a new project but i have doubts have to implement. Can you 
> give me some idea?
>
>

-- 
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