jquery - 响应式数据表(createdRow)

标签 jquery css jsp servlets datatables

我正在使用带有响应式扩展 (responsive: true) 的 jQuery DataTables 和以下源代码,它工作正常:

 "createdRow": function ( row, data, index ) {
                var fechaFin = data[6];
                var diaActual = Date();
                var dateFechaFin = new Date(fechaFin.substr(6,9)+"-"+fechaFin.substr(3,2) +"-"+fechaFin.substr(0,2));
                  if ( data[8] != "0" ) { 
                      $('td', row).eq(9).html(
                         "<form id=\"formMatricula_"+ $('td', row).eq(0).html()+"\" action=\"/english/InscripcionPaso1\" method=\"POST\">" +
                         "<button id=\"botonMatricula_"+ $('td', row).eq(0).html()+"\" type=\"submit\" class=\"btn btn-xs f-r grad-gold f-w-b\">REGISTER</button></form>"
                      );

但是当我减小浏览器的大小时,注册按钮消失了。

我认为问题在于,因为我已经创建了它,所以在 createdRow 和行 responsive: true 中,此按钮不起作用。

因此包含的库是:

    <!-- DataTables CSS 1.10.4-->
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/vendor/DataTables-1.10.4/media/css/jquery.dataTables.css">          
    <!-- jQuery 1.10.4 -->
    <script type="text/javascript" charset="utf8" src="${pageContext.request.contextPath}/vendor/DataTables-1.10.4/media/js/jquery.js"></script> 

    <!-- DataTables 1.10.4 -->
    <script type="text/javascript" charset="utf8" src="${pageContext.request.contextPath}/vendor/DataTables-1.10.4/media/js/jquery.dataTables.js"></script> 

    <script type="text/javascript" charset="utf8" src="${pageContext.request.contextPath}/publico/js/dataTables.responsive.js"></script>

我正在使用 JSP。

最佳答案

我认为出现此问题是因为响应式扩展操作了表结构,但在添加/删除列时未调用 createdRow

一般不推荐使用createdRow为单元格生成内容,使用columns.render相反。

通过 columnDefs,您可以使用 targets 来定位特定列(在您的示例中为 9)。变量 full 包含整行的数据。

$('#example').dataTable({
  "columnDefs": [ {
    "targets": 9,
    "render": function(data, type, full, meta){
       if(type === 'display'){
          if ( full[8] != "0" ) { 
              data = 
                 "<form id=\"formMatricula_" + 
                 full[0] + 
                 "\" action=\"/english/InscripcionPaso1\" method=\"POST\">" +
                 "<button id=\"botonMatricula_" + 
                 full[0] +
                 "\" type=\"submit\" class=\"btn btn-xs f-r grad-gold f-w-b\">REGISTER</button></form>";
          }
       }
       return data;
     }
  }]
});

关于jquery - 响应式数据表(createdRow),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31321016/

相关文章:

css - 仅使用 CSS 淡出后隐藏元素

java - Spring应用程序中JSP中HashMap的迭代HashMap

java - 使用 url redirect 更改部分 url

c# - 如何避免多个 $(document).ready()

php - 使用 jquery 和 php 检查登录表单并显示错误消息

javascript - Chrome 中全屏显示的白色底部和顶部栏

javascript - 如果 child 数多于一个数字,则在溢出时滚动

java - 使用jquery在jsp页面中接受http session 请求参数

jquery - 如何在 jQuery 中取消附加事件并附加新事件

javascript - 有两个标签的DIV?