web2py + jquerydatatables

En el controlador (por ejmplo controlador.py)

 
def get_data():
    # aca genero el json para la tabla
    query="""SELECT * FROM tabla """
    iTotalRecords='select count(id) from tabla;'
    iTotalDisplayRecords = iTotalRecords
    custdata = {}
    custdata['aaData'] = db.executesql(query)
    custdata['iTotalRecords']=db.executesql(iTotalRecords)[0][0]
    custdata['iTotalDisplayRecords']=db.executesql(iTotalDisplayRecords)[0][0]
    custdata['sEcho']=1
 
    return response.json(custdata)

Debemos agregar la librería Datatables (archivos js, css, img) al contenido estático de nuestro proyecto, en mi caso yo agregué en la dirección web2py/applications/”nombre de mi app”/static/js/ los archivos de la librería datatables.

  • jquery.datatables/bootstrap
  • jquery.datatables/css
  • jquery.datatables/images
  • jquery.datatables/js
  • jquery.datatables/dataTables.spanish.txt

En la vista (por ejemplo show.html)

<!-- incluyo los archivos CSS -->
{{response.files.insert(80,URL('static','js/jquery.datatables/css/jquery.dataTables.css'))}}
 
<!-- incluyo los archivos JavasScript -->
{{response.files.insert(81,URL('static','js/jquery.datatables/js/jquery.dataTables.min.js'))}}
{{response.files.insert(82,URL('static','js/jquery.datatables/bootstrap/dataTables.bootstrap.js'))}}
 
{{extend 'layout.html'}}
 
<script type="text/javascript" >
    $(document).ready(function() {
 
        var oTable = $('#listado').dataTable( {
            "aaSorting": []
            , "oLanguage": {sUrl: "{{=URL('static','js/jquery.datatables/dataTables.spanish.txt')}}"}
            , "aLengthMenu": [25, 50, 100, 250, 1000]
            , "iDisplayLength": 50
            , "sAjaxSource": "{{=URL('controlador','get_data.json')}}"
            , "sDom": "frtiS"
            , "bDeferRender": true
        } );
     });
</script>
<table class="table table-bordered" id="listado">
    <thead>
        <th>ID</th>
        <th>campo 1</th>
        <th>campo 2</th>
        <th>etc ..</th>
    </thead>
    <tbody>
 
    </tbody>
</table>

Referencia:

Publicado en GNU/Linux, Programación, Python, web2py

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Categorías

mayo 2015
L M X J V S D
« Abr   Jun »
 123
45678910
11121314151617
18192021222324
25262728293031