See https://stackoverflow.com/a/55667115/440323.
On Friday, April 12, 2019 at 11:58:36 PM UTC-4, Cristina Sig wrote: > > Hello everybody, > > I have two tables and I am working with Datatables and what I would like > to do is use the child row to show more information about a particular row. > For example, on the table I will display first name, last name, username, > and email and on the child or expandable row, I will show the nationality > of that user. > The problem I am having is that when I expand the row, it shows only the > id from the 'User' table and not the description associated to that id. > this is my first time dealing with Datatables so I don't have my > experience with it. > > Any suggestions to solve this issue? > > Thanks :) > > DB > db.define_table('User', > Field('first_name', 'string'), > Field('last_name', 'string'), > Field('email','string'), > Field('username','string'), > Field('nationality','reference Nationality', requires = > IS_IN_DB(db,db.Nationality.id,'%(description)s') > ) > > > db.define_table('Nationality', > Field('description','string'), > format = '%(descripcion)s' > ) > > > > My controler > def user(): > import json > usuario = json.dumps(db(db.auth_user.id>0).select().as_list()) > return dict(formListar=XML(usuario)) > > > > > My view > <script> > var tabla; > $(document).ready(function(){ > tabla= $('#tablaGenerica').DataTable({ > "data": {{=formListar}}, > "scrollX": false, > "dom": 'lrtip', > "searching": true, > "sRowSelect": "single", > "columns": [ > { > "class":"details-control", > "orderable":false, > "data":null, > "defaultContent": "" > }, > { data: 'first_name' }, > { data: 'last_name' }, > { data: 'email' }, > { data: 'username' }, > ] > }); > > $('#tablaGenerica tbody').on('click', 'td.details-control', function () { > var tr = $(this).closest('tr'); > var row = tabla.row( tr ); > if ( row.child.isShown() ) { > // This row is already open - close it > row.child.hide(); > tr.removeClass('shown'); > } > else { > // Open this row > row.child( format(row.data()) ).show(); > tr.addClass('shown'); > } > } ); > > function format ( d ) { > // `d` is the original data object for the row > return '<table cellpadding="5" cellspacing="0" border="0" > style="padding-left:50px;">'+ > '<tr>'+ > '<td>Nationality:</td>'+ > '<td>'+d.nationality+'</td>'+ > '</tr>'+ > '</table>'; > } > </script> > > > > <table id="tablaGenerica" class="tablaC table-striped hover cell-border" > cellspacing="0" width="100%" > > <thead> > <tr> > <th></th> > <th>First name</th> > <th>Last name</th> > <th>Email</th> > <th>Username</th> > </tr> > </thead> > </table> > > > > > -- 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.