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.

Reply via email to