我的mvc视图有一个使用.datatable的表。每行都有许多列,名称......和一个复选框。如果我按照原始名称之前的另一列对表进行排序然后导航然后按回来,缓存会使用名称sort将viewmodel数据加载到表中,但是缓存似乎是根据先前检查的行检查复选框使用不同的排序。
离。
(原)
name | number |checked
A | 3 |
B | 1 | X
C | 2 |
按编号排序(.datatable)
name | number |checked
B | 1 | X
C | 2 |
A | 3 |
转到新页面,然后回来
我等待javascript aready .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
});
答案 0 :(得分:0)
通过强制服务器端刷新模型数据解决了这个问题。看起来这只是一个数据表与chrome的缓存系统接口的错误。