jquery - DataTables 服务器端输入搜索

标签 jquery asp.net-mvc datatables

我在这里看到了很多线程,这些线程展示了如何在输入时实现搜索(默认行为是每次按键后搜索),但由于某种原因,当我对 DataTables 代码进行服务器端处理时,它会被忽略,并且默认行为又回来了。有人知道如何仅在用户按下回车键后才开始搜索吗?

这就是我现在得到的,代码的搜索部分被简单地忽略(searchDelay 也没有效果 - 来自 DataTables 文档)

var adminRoles;

$(document).ready(function () {
    adminRoles = $('#adminRoles').dataTable({
        info: true,
        order: [[0, 'asc']],
        processing: true,
        serverSide: true,
        searchDelay: 500, //does't work
        ajax: {
            url: "@Url.Action("GetRoles","Admin")",
            type: "POST"
        },
        columnDefs: [
            { data: "Name", targets: 0 },
            { data: "KeyName", targets: 1 },
            {
                data: "Id",
                className: "text-center editDetail clickable",
                render: function (data, type, row) {
                    return '<button class="btn btn-default btn-xs"><span class="glyphicon glyphicon-pencil text-primary" /></button>';
                },
                sortable: false,
                searchable: false,
                targets: 2
            }
        ],
        language: {
            url: '@Url.Content(@Resource.js_DataTables_Language)'
        }
    }).api();

    $('#adminRoles_filter input').unbind().bind('keypress', function (e) {
        if (e.which == 13) {
            alert('You pressed enter!'); //doesn't get hit
            //adminRoles.search(this.value).draw();
        }
        return;
    });
});

最佳答案

使用initComplete选项来定义一个函数,该函数将在表初始化时调用,并使用下面的代码按 Enter 键进行搜索。

adminRoles = $('#adminRoles').dataTable({
   initComplete: function(){
      var api = this.api();
      $('#adminRoles_filter input')
          .off('.DT')
          .on('keyup.DT', function (e) {
              if (e.keyCode == 13) {
                  api.search(this.value).draw();
              }
          });
   },

   // ... skipped ...

});

关于jquery - DataTables 服务器端输入搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631440/

相关文章:

javascript - Bootstrap Modal 和 PartialView 中的 ASP.net MVC 4 验证

asp.net - 如果我不限制文件上传到网络服务器的最大请求长度,会出现哪些安全漏洞?

javascript - 如何使用 jquery 对 2 列数据表进行乘法和求和? - 数据表

jquery - jQuery 中的悬停水平滚动菜单

javascript - JS/jQuery - 最好在 $(document).ready 或调用的函数中运行事件处理程序

php - jquery php 问题

.net - IAuthenticationRequest.RedirectToProvider 不应该返回,但它确实

php - 如何在 Codeigniter 上使用数据表(尤其是制作搜索框)?

javascript - jQuery Datatable 在 jQuery 单击事件上访问行数据(渲染参数)

Jquery SlideToggle 在停止调用后未完全打开