jQuery Datatable:标题和搜索在同一行

Posted

技术标签:

【中文标题】jQuery Datatable:标题和搜索在同一行【英文标题】:jQuery Datatable: Heading and Search on the same line 【发布时间】:2021-01-13 18:28:45 【问题描述】:

目前我的 jQuery 数据表看起来像这样:

我希望历史标题和搜索栏在同一行。

我已经实现了这样的标题和表格:

<h2>History</h2>
<table class="table" id="history_tbl" style="width:100%">
    <thead>
        <tr>
            ...
        </tr>
    </thead>
    <tbody>
        @for (var i = 1; i < M.Count(); i++)
        
        <tr>
            ...
        </tr>
        
    </tbody>
</table>

以及数据表的以下规范:

$("#history_tbl").DataTable(
                "columns": [
                     searchable: false ,
                    null,
                     searchable: false ,
                     searchable: false ,
                     searchable: false ,
                     searchable: false ,
                     searchable: false 
                ],
                ordering: false,
                paging: true,
                lengthChange: false,
                language: 
                    searchPlaceholder: "Search names",
                    search: ""
                
            );

我已经看到我可以通过添加 DOM 来改变一些东西,但我不太确定我需要什么。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

这里有两个选项 - 都不太理想:

选项一

使用您提到的dom 选项的一种方法是:

$('#example').DataTable( 
  dom: '<"title"<"filter"f>>rtip'
 );

这会将f 过滤器控件放置在其自己的具有filter 样式类的div 中,然后还将其包装在另一个具有title 样式类的div 中。

那么我们需要在 html 页面的&lt;head&gt; 中添加如下样式部分:

.title::before 
  font-size: 2em;
  margin: 1.5em 0 0 0;
  content: "History";


.filter 
  float: right;

最后,&lt;h2&gt;History&lt;/h2&gt; 元素需要从您的页面中删除,才能使用这种方法。

我的最终结果是这样的:

这种方法有几个重要的缺点:

    它强制你在 CSS 中放置一些内容(标题)——而样式和内容应该是分开的。

    这可能会使实施国际化变得更加困难(如果需要)。

选项二

或者,您可以使用 &lt;h2&gt; 标记,并带有一些相对定位 - 例如:

<div style="position: relative; top: 30px;"><h2>History</h2></div>

这会将标题从顶部向下推 30 像素(您可能需要根据您的特定需求进行调整)。

在这种情况下,您不需要使用&lt;dom&gt; 选项或第一个选项中的相关样式。

这也有一些重要的缺点:

    它可能很脆弱 - 在某些情况下会出现意外/不需要的行为(例如不同的屏幕分辨率)。

    您可能在页面顶部有一个不需要的空白间隙,这需要额外的样式解决方法才能删除。

【讨论】:

感谢您的详细回答!它工作正常,虽然我理解你提到的那些缺点。

以上是关于jQuery Datatable:标题和搜索在同一行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery DataTable:在表头上搜索单个列

Jquery Datatable 搜索框左对齐

JQuery的datatable里搜索功能怎么修改

jQuery DataTable 从搜索中重新填充表

jQuery DataTable 日期范围搜索

Jquery Datatable 搜索框重新定位