【问题标题】:how to add custom columns to dataTables with server-side processing?如何通过服务器端处理向 dataTables 添加自定义列?
【发布时间】:2011-01-18 08:58:36
【问题描述】:

我已经在我的页面http://datatables.net/examples/server_side/server_side.html 上制作了这个示例,(使用 php5、jquery+ui 和 dataTables.net)

我希望能够在每一行上添加一个修改和删除链接,如果不从服务器发送两个额外的链接列,我该如何做到这一点?

我如何替换数据库中行的 ID 以及由服务器发送的 ID,从 1 到 iTotalDisplayRecords...

谢谢

【问题讨论】:

  • 发送两列有什么问题?
  • 这对我来说似乎是一个糟糕的解决方案,向每个 ajax 请求发送额外的数据,发送链接的 html 代码,如果有一天路径改变了怎么办......如果 javascript 可以添加它会更简单苍蝇

标签: php jquery datatables


【解决方案1】:

找到方法

var controller_name = '<?php echo Zend_Controller_Front::getInstance()->getRequest()->getControllerName();?>';


"fnDrawCallback": function ( oSettings ) {
                    /* Need to redo the counters if filtered or sorted */

                        for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ )
                        {
                            var link = $('&nbsp;<a href="/'+controller_name+'/modifica/id/'+ oSettings.aoData[ oSettings.aiDisplay[i] ]._aData[0]+'">Modifica</a> <a href="/'+controller_name+'/cancella/id/'+ oSettings.aoData[ oSettings.aiDisplay[i] ]._aData[0]+'">Cancella</a>');
                            $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
                            $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).append(link);
                        }
                },

【讨论】:

  • 使用 fnRowCallback 比 fnDrawCallback 更快且响应更快!!! (当有超过 500 行或东西时)并且它不会给出关于脚本没有响应的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2021-05-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
相关资源
最近更新 更多