我的 mvc 视图有一个使用 .datatable 的表。每行有很多列,名称...和一个复选框。如果我按原始名称以外的另一列对表进行排序然后导航离开然后按回,缓存使用名称排序将视图模型数据加载到表中,但是缓存似乎正在根据先前检查的行检查复选框使用不同的排序。
前任。
(原来的)
name | number |checked
A | 3 |
B | 1 | X
C | 2 |
按数字排序(.datatable)
name | number |checked
B | 1 | X
C | 2 |
A | 3 |
转到新页面然后返回
我在 javascript afer .ready 上等待,所以我可以看到未设置样式的表格
name | number |checked
A | 3 | X
B | 1 |
C | 2 |
然后一旦数据表运行
name | number |checked
B | 1 |
C | 2 |
A | 3 | X
我在 chrome 和 IE 中对此进行了测试,问题仅在 chrome 中出现。
<table class="table table-striped table-bordered" style="text- transform:none!important">
<thead>
<tr>
<th>Name
</th>
<th>Number
</th>
<th>Checked
</th>
</tr>
</thead>
<tbody>
@if (@Model.records.Count() > 0)
{
foreach (var item in @Model.records)
{
<tr>
<td>@item.Name</td>
<td>@item.number</td>
<td>@Html.CheckBox("chkhide", @item.IsHidden, new { @class = "hide_check", id = item.Id })</td>
</tr>
}
}
</tbody>
</table>
<script type="text/javascript">
jQuery(document).ready(function () {
$('.table').dataTable(
{
"sDom": 'T<"clear">lfrtip',
"oTableTools": {
"sSwfPath": "../../../../Content/DataTables-1.9.4/extras/TableTools/media/swf/copy_csv_xls_pdf.swf",
"aButtons": ["copy", "csv"]
},
"bPaginate": false,
"bSortCellsTop": true,
"bSortClasses": false,
"bStateSave": true
});