如何在不更新“搜索”输入字段的情况下手动搜索数据表

时间:2018-11-26 15:35:46

标签: datatable datatables

如果我手动致电:

tabla.search('Advanced:' + search).draw();

其中“ tabla”是数据表,“ search”输入字段将使用搜索文本进行更新。

事实是,我正在使用同一字段实现高级搜索功能。

如果用户在搜索字段中输入内容(简单搜索),则网格将随搜索自动刷新。可以。

但是,我有一个高级搜索表。执行这种搜索时,我需要发布到服务器上的搜索参数以包括所有带有词头“ Advanced:”的搜索字段。这样,在服务器端,我可以知道搜索是简单还是高级。

问题在于,当使用“搜索”方法时,输入字段将使用搜索内容进行更新。如果执行高级搜索,则此文本将出现在字段中,例如:

Advanced:Campo_1=936969&Campo_2=&Campo_4=&Campo_7=&Campo_3=&Campo_5=&Campo_6=&Campo_8=

有没有办法避免搜索字段被更新?

谢谢 海梅

1 个答案:

答案 0 :(得分:0)

最后,我创建了一个自定义搜索字段并删除了默认字段。

要完成此操作,我使用了以下dom定义:

           dom: "<'row'<'col-sm-12 col-md-4'<\"gridToolbar\">><'col-sm-12 col-md-4'l><'col-sm-12 col-md-4'<\"customSearch\">>>" +
                "<'row'<'col-sm-12'tr>>" +
                "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>"

然后,在draw.dt事件中,我添加了:

            $("div.customSearch").html('<div id="facturas_filter" class="dataTables_filter"><label>Buscar:<input type="search" class="form-control form-control-sm" placeholder="" aria-controls="facturas"></label></div>');
            $('#facturas_filter input').on('keyup', function () {
                tabla.search($('#facturas_filter input').val()).draw();
            });

欢呼 海梅