jQuery DataTables添加自定义多个搜索条件

效果如下:
在这里插入图片描述

一、在前台页面定义输入搜索条件的文本框

 <div class="ibox-tools">
                            <span>年度</span>
                            @Html.DropDownList("year", (List<SelectListItem>)ViewBag.YearDrop, new { @class = "" })
                            <span>月度</span>
                            @Html.DropDownList("month", (List<SelectListItem>)ViewBag.MonthDrop, new { @class = "" })
                            <span>开始日期</span>
                            @Html.TextBox("StartTime", null, new { @class = "m-wrap small" })
                            <span>结束日期</span>
                            @Html.TextBox("EndTime", null, new { @class = "m-wrap small" })

                            <span>发文类型</span>
                            @Html.DropDownList("DTMName", null, new { @class = "m-wrap small" })
                            <span>关键字</span>
                            @Html.TextBox("KeyWords", null, new { @class = "m-wrap small" })

                            <a class="btn btn-primary btn-sm" title='搜索' id="btn_search" href="javascript:void(0)"><i class="fa fa-search"></i>搜索</a>
                            <a class="btn btn-primary btn-sm" title='发文' href="@Url.Action("Create")"><i class="fa fa-plus"></i>添加</a>

                            <a class="collapse-link">
                                <i class="fa fa-chevron-up"></i>
                            </a>
                        </div>

二、最主要的是js部分

  //把公共的设置项都放在这里,就不需要每个页面都设置一遍了,放在jQuery对象上是为了避免污染全局变量
    $.dataTablesSettings = {
        "aLengthMenu": [10, 25, 50, 100],
        "bAutoWidth": false,
        "bDeferRender": true,
        "bLengthChange": true,
        "sAjaxSource": "/ReceivedDoc/AjaxHandler",
        "bPaginate": true,
        "bServerSide": true,
        "bSort": true,
        "iDisplayLength": 10,
        searching: false,//是否显示搜索框
        "aaSorting": [[0, "asc"]], // set first column as a default sort by asc
        "bFilter": true,
        "aoColumnDefs": [{  // define columns sorting options(by default all columns are sortable extept the first checkbox column)
            'bSortable': true,
            'aTargets': [0, 8]
        }],
        "fnServerParams": function (aoData) {
            aoData._rand = Math.random();
        },
        "fnDrawCallback": function () {

        }

        dataTable = $(".dataTables-example").dataTable($.dataTablesSettings);
            $('#btn_search').click(function () {
                //这里重新设置参数
                $.dataTablesSettings.fnServerParams = function (aoData) {
                    aoData._rand = Math.random();
                    aoData.push(
                        { "name": "year", "value": $('#year').val() },
                        { "name": "month", "value": $('#month').val() },
                        { "name": "StartTime", "value": $('#StartTime').val() },
                        { "name": "EndTime", "value": $('#EndTime').val() },
                        { "name": "DTMName", "value": $('#DTMName').val() },
                        { "name": "KeyWords", "value": $('#KeyWords').val() }
                        );
                }
                //搜索就是设置参数,然后销毁datatable重新再建一个
                dataTable.fnDestroy(false);
                dataTable = $(".dataTables-example").dataTable($.dataTablesSettings);
                //搜索后跳转到第一页
                dataTable.fnPageChange(0);
            });

三、后台就就可以使用类接收参数了,也可以使用HttpContext.Request.QueryString["year"]接收。接收后根据不同的查询条件进行相应的查询。

jQuery DataTables 是一个强大的表格插件,可以帮助开发人员快速实现功能丰富的数据表格。 首先,在使用这个插件之前,需要在项目中引入 jQueryDataTables 的相关文件。可以通过将它们下载到本地并引用,或者使用 CDN 服务引用它们。 一旦引入了必要的文件,就可以开始使用 DataTables。 首先,需要将 HTML 表格元素转换成 DataTables,可以使用如下方式: ```javascript $(document).ready(function() { $('#myTable').DataTable(); }); ``` 上述代码将选择具有 id 为 "myTable" 的表格元素,并将其转换为 DataTables。 接下来,可以在 DataTables 中配置各种选项,以满足项目的需求。例如,可以设置表格的列宽度、排序方式、是否显示搜索等等。可以通过在 DataTables 初始化函数中传递一个配置对象来实现这些功能。例如: ```javascript $(document).ready(function() { $('#myTable').DataTable({ "columnDefs": [ { "width": "20%", "targets": 0 }, // 设置第一列的宽度为20% { "orderable": false, "targets": 2 } // 第三列禁止排序 ], "searching": false // 禁用搜索 }); }); ``` 除了基本的配置选项外,DataTables 还提供了许多其他功能,例如分页、导出数据、自定义过滤等等。这些功能可以通过配置项或使用插件来实现。 DataTable还提供了许多API方法,可以进行表格的操作,如添加、删除、更新数据等。例如,可以使用 `row().data()` 方法获取表格的某一行数据,并对其进行修改。 上述是对 jQuery DataTables 的简要介绍,它为我们提供了一种简单高效的方式来管理和操作数据表格,帮助我们快速构建功能丰富的表格界面。通过深入学习官方文档和示例,掌握其更多高级用法,可以更好地利用该插件来满足各类项目的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值