当前位置: 首页 > 知识库问答 >
问题:

服务器端的数据表自定义筛选

督烨赫
2023-03-14

我正在使用数据表和服务器端处理(Django)。

我有一个单独的textfield,在表已经呈现之后,我使用它自定义筛选DataTable中的数据。

以下操作很好(我想自定义筛选列):

var table = $('#problem_history').DataTable( {
    "bJQueryUI": true,
    "aaSorting": [[ 1, "desc" ]],
    "aoColumns": [
      // various columns here
    ],
    "processing": true,
    "serverSide": true,
    "ajax": {
      "url": "/getdata",
      "data": {
        "friend_name": 'Robert'
      }
    }  
} );

所以在页面加载(DataTable的初始加载)时,它很好地过滤了'Robert'。但现在我想以编程方式更改数据以筛选“friend_name”==“sara”

我已经尝试了以下操作,filtereddata有一个正确的筛选对象,但是表本身并没有用新的筛选器重新绘制。

var filteredData = table.column( 4 ).data().filter(
    function ( value, index ) {
        return value == 'Sara' ? true : false;
    }
);
table.draw();

我也试过这个但没有运气:

filteredData.draw();


如何实现此目标?

谢谢你的帮助。

共有2个答案

解晟睿
2023-03-14

你就快搞定了。您只需将筛选器var分配给datatables请求中传递的数据参数:

"ajax": {
     "url": "/getdata",
     "data": {
     "friend_name": $('#myselectid').val();
    }
} 

要筛选数据,只需在select change事件上调用draw()

$('#myselectid').change(function (e) {
        table.fnDraw();
});
翟浩穰
2023-03-14

下面是一个很好的解释,说明如何执行:https://datatables.net/reference/option/ajax.data

我当前正在使用以下代码:

"ajax": {"url":"/someURL/Backend",
        "data": function ( d ) {
                  return $.extend( {}, d, {
                    "parameterName": $('#fieldIDName').val(),
                    "parameterName2": $('#fieldIDName2').val()
                  } );
        }
}

您可以通过执行以下操作来调用它:

$('#myselectid').change(function (e) {
        table.draw();
});

如果要通过单击按钮提交,请更改。将更改为。单击并确保ID指向HTML中按钮的ID

 类似资料:
  • 我正在使用Datatables在我的Web应用程序中显示表格数据,并将其配置为利用服务器端处理,即通过AJAX查询服务器以查找过滤后的数据。我想根据特定于我的应用程序的附加参数进行筛选,即对应于某些用户选项(例如,通过UI中的复选框)。如何使DataTables将这些附加的筛选器参数传递到服务器?

  • Examples Basic custom server Express integration Hapi integration Koa integration Parameterized routing SSR caching 一般你使用next start命令来启动 next 服务,你还可以编写代码来自定义路由,如使用路由正则等。 当使用自定义服务文件,如下面例子所示叫 server.js

  • 存储在Django模型中的元素如下 示例数据如下: . 结果:找到对象- 结果:找到对象- 结果:找到对象- 结果:未找到对象 如何使用过滤器和正则表达式进行这些查询?

  • 我试图使Angularjs服务器端分页在这个链接https://l-lin.github.io/angular-datatables/#/serverSideProcessing 所以我用这个暗号 我在dataSrc参数中手动添加了recordsTotal、recordsFiltered和row 这是添加recordsTotal、recordsFiltered和row之前和之后的json数据 添加

  • svnserve,一个自定义的服务器 svnserve是一个轻型的服务器,可以同客户端通过在TCP/IP基础上的自定义有状态协议通讯,客户端通过使用开头为svn://或者svn+ssh://svnserve的URL来访问一个svnserve服务器。这一小节将会解释运行svnserve的不同方式,客户端怎样实现服务器的认证,怎样配置版本库恰当的访问控制。 调用服务器 有许多不同方法运行svnserv

  • 我正在使用带有服务器端处理的DataTables来显示数万行。我需要通过复选框筛选这些数据。我能够使一个复选框工作良好,但我不知道如何添加多个复选框一起工作。我在这里找到了类似的解决方案,但我的技能不允许我根据需要修改它:(以下是我尝试过的。 我的index.php: idsa变量最初设置为5,这意味着所有的状态(没有选中复选框)然后用它的格式(d)函数发送到服务器端脚本(这部分工作正常)。这就是