实现思路:
使用datatable内置的分页,排序
使用attribute+反射来控制需要排序和显示的字段以及顺序
分离排序和显示逻辑
若要添加搜索逻辑只需要传递搜索的字段到后端即可(js初始化时把"searching": false拿掉)。
View :
@using BCMS.BusinessLogic
@using BCMS.BusinessLogic.Models
@model List<BusCaptainObj>
<table id="tblData" class="table table-striped">
<thead>
<tr class="data-list">
<th style="width:10%;">@Html.DisplayNameFor(model => model.First().PersNo)</th>
<th style="width:30%;">@Html.DisplayNameFor(model => model.First().Personnel_Name)</th>
<th style="width:20%;">@Html.DisplayNameFor(model => model.First().Position)</th>
<th style="width:20%;">@Html.DisplayNameFor(model => model.First().Interchange)</th>
<th style="width:20%;">Action</th>
</tr>
</thead>
</table>
@section scripts {
<script type="text/javascript">
@{
var columns = DataTableHelper.DisplayColumns<BusCaptainObj>();
}
$(document).ready(function () {
$('#tblData').dataTable({
"processing": true,
"serverSide": true,
"searching": false,
"stateSave": true,
"oLanguage": { "sInfoFiltered": "" },
"ajax": {
"url": @Url.Action("GetJsonData"),