繁体   English   中英

使用Asp.Net MVC实体框架数据禁用对数据表的特定列搜索

[英]Disable specific columns search on datatable with Asp.Net MVC Entity Framework data

我首先使用Asp.Net MVC从使用实体框架代码创建的数据库中获取一些数据到jQuery数据表中。 因此,对于数据库中的每个记录,脚手架还会生成“删除,详细信息,编辑”链接。 搜索也适用于那些链接。 因此,如何允许仅搜索特定列,或/和禁用其他特定列? 在这种情况下,如何禁用该特定列的排序(删除,详细信息,编辑)?

我正在使用Asp.Net Core,仅供参考。

编码:

div class="row">
<div class="col-sm-12">
    <p>
        <a asp-action="Create">Create New</a>
    </p>
    <div class="panel panel-default">
        <div class="panel panel-heading">
            Reports
        </div>
        <div class="panel-body">
            <div class="table-responsive">
                <table class="table table-hover table-responsive" id="dataTables">
                    <thead>
                        <tr>
                            <th>
                                @Html.DisplayNameFor(model => model.Description)
                            </th>

                            <th>
                                @Html.DisplayNameFor(model => model.RepFile)
                            </th>                                

                            <th class="col-sm-2"></th>
                        </tr>
                    </thead>
                    <tbody>
                        @foreach (var item in Model)
                        {
                            <tr>
                                <td>
                                    @Html.DisplayFor(modelItem => item.Description)
                                </td>

                                <td>
                                    @Html.DisplayFor(modelItem => item.RepFile)
                                </td>

                                <td>
                                    <a asp-action="Edit" asp-route-id="@item.ID">Edit</a> |
                                    <a asp-action="Details" asp-route-id="@item.ID">Details</a> |
                                    <a asp-action="Delete" asp-route-id="@item.ID">Delete</a>
                                </td>
                            </tr>
                        }
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    </div>
</div>

@section脚本{

<script>
    $(document).ready(function () {
        $('#dataTables').DataTable({
            responsive: true
        });
    });
</script>

}

标准jQuery Datatables中 ,过滤是在客户端进行的,并且搜索适用于所有行和列。

您可以通过定义每列的专有性(例如searchableorderable )来自定义配置:

 $('#example').dataTable({ "columns": [{ "searchable": true, "orderable": true }, { "searchable": true, "orderable": true }, { "searchable": true, "orderable": true }, { "searchable": false, "orderable": false }, { "searchable": false, "orderable": false }, { "searchable": false, "orderable": false }, ] }) 
 <script src="https://cdn.datatables.net/u/bs/jq-2.2.3,dt-1.10.12/datatables.min.js"></script> <script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <link href="https://cdn.datatables.net/u/bs/jq-2.2.3,dt-1.10.12/datatables.min.css" rel="stylesheet" /> <link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" /> <table id="example" class="display" cellspacing="0" width="100%"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tfoot> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </tfoot> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011/04/25</td> <td>$320,800</td> </tr> <tr> <td>Garrett Winters</td> <td>Accountant</td> <td>Tokyo</td> <td>63</td> <td>2011/07/25</td> <td>$170,750</td> </tr> <tr> <td>Ashton Cox</td> <td>Junior Technical Author</td> <td>San Francisco</td> <td>66</td> <td>2009/01/12</td> <td>$86,000</td> </tr> <tr> <td>Cedric Kelly</td> <td>Senior Javascript Developer</td> <td>Edinburgh</td> <td>22</td> <td>2012/03/29</td> <td>$433,060</td> </tr> <tr> <td>Airi Satou</td> <td>Accountant</td> <td>Tokyo</td> <td>33</td> <td>2008/11/28</td> <td>$162,700</td> </tr> <tr> <td>Brielle Williamson</td> <td>Integration Specialist</td> <td>New York</td> <td>61</td> <td>2012/12/02</td> <td>$372,000</td> </tr> <tr> <td>Herrod Chandler</td> <td>Sales Assistant</td> <td>San Francisco</td> <td>59</td> <td>2012/08/06</td> <td>$137,500</td> </tr> </tbody> </table> 

您可以在配置数据表时通过使用可选参数来存档。

对于订单: columns.orderable

数据表

说明使用此参数,可以删除最终用户对列进行排序的能力。 这对于生成的内容列可能很有用,例如,如果表中有“编辑”或“删除”按钮。

此处搜索的另一个示例线程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM