如何刷新数据表列表
How to refresh datatable list jquery?
我使用DataTable Jquery绑定记录列表。我面临以下问题。
我使用jquery模型弹出添加新的和更新记录在MVC 4.0 Razor没有提交按钮,只使用ajax功能。当我点击"保存"按钮,我想更新列表与最新的变化,但它不能。我的代码如下:
为列表绑定的索引页。
<script type="text/javascript">
$(document).ready(function () {
if (fnServerObjectToArray) {
var oTable = $('.datatable').dataTable({
"bJQueryUI": true,
"sScrollX": "",
"bSortClasses": false,
"aaSorting": [[0, 'asc']],
"bAutoWidth": true,
"bInfo": true,
"sScrollY": "100%",
"sScrollX": "100%",
"bScrollCollapse": true,
"sPaginationType": "full_numbers",
"bRetrieve": true,
"bProcessing": true,
"sAjaxSource": $('.datatable').attr('data'),
"aoColumns": [
{ sType: 'string' },
{ sType: 'string' },
{ sType: 'string' },
{ sType: 'string' },
{ bSortable: false }
],
"fnServerData": fnServerObjectToArray()
});
}
});
fnServerObjectToArray = function () {
return function (sSource, aoData, fnCallback) {
$.ajax({
"dataType": 'json',
"type": "GET",
"url": sSource,
"data": aoData,
"success": function (json) {
var a = [];
for (var i = 0, iLen = json.aaData.length; i < iLen; i++) {
var inner = [];
inner.push(json.aaData[i].Name);
inner.push(json.aaData[i].Price);
inner.push(json.aaData[i].Phone);
inner.push(json.aaData[i].Email);
inner.push("<a title='Edit Place' class='EditDialogPlacesToStay' href='/placetostay/" + json.aaData[i].Id + "/edit'><img src='/Content/images/icons/small/grey/pencil.png' title='Edit' /></a> <a class='DeleteConfirm' href='/placetostay/" + json.aaData[i].ID + "/delete'><img src='/Content/images/icons/small/grey/trashcan.png' title='Delete' /></a>");
a.push(inner);
}
json.aaData = a;
fnCallback(json);
},
"error": function (error) {
}
});
}
}
</script>
在成功函数中保存按钮时,我调用location.reload()。
但是我不能绑定最新更改的记录意味着List没有刷新。
请帮帮我。
将数据表初始化封装到函数中,如initDataTable()
,并将选项 bDestroy
添加到设置中:
function initDataTable() {
if (fnServerObjectToArray) {
var oTable = $('.datatable').dataTable({
"bDestroy" : true, //<-- add this option
"bJQueryUI" : true,
...
//anything as above
});
}
}
$(document).ready(function () {
initDataTable();
});
当你想刷新/重新加载时,比如点击一个按钮:
<button id="refresh">Refresh</button>
$("#refresh").click(function() {
initDataTable();
});
这是一个演示-> http://jsfiddle.net/cxe5L/
避免缓存问题
jQuery数据表将cache : true
硬编码到它的ajax调用中。有"sAjaxSource": $('.datatable').attr('data')
。我假设data
持有外部资源的路径,如/data/getdata.asp
或类似的?向该资源添加时间戳作为参数,如
sAjaxSource : $('.datatable').attr('data')+'?param='+new Date().getTime()
所以sAjaxSource变成了表单
/data/getdata.asp?param=1401278688565
这与jQuery在ajax请求上设置cache : false
时所做的基本相同。
location.reload()将刷新页面内容和您的
$(document).ready(function () {}
正在再次执行,而不是获得最新的更改。检查数据库是否有新记录
相关文章:
- 用程序搜索JQuery数据表中的文本
- 具有rowGrouping的数据表无法隐藏列
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 将单击事件添加到数据表
- 使用带有参数的数据表sAjaxSource
- 对角度数据表中括号内的数字进行排序
- 动态构建一个数据表与scriplets
- jquery数据表的自定义ko绑定
- 预览数据表单
- 服务器端数据表中下拉列表的Onchange事件
- 数据表:列显示在“显示/隐藏列”列表中,即使它具有“显示:无”样式
- Codeigniter/jQuery:将值从选择下拉列表提取到数据表中时出现问题
- 列表到 Jquery 数据表 c#
- 使用 JavaScript 在数据表 (MVC 3) 中进行选择列表过滤
- C# MVC 填充数据表中的下拉列表组
- 具有可选行和下拉列表的数据表
- 从数组表中输入数据到列表中
- 如何获取应用了数据表的所有表的列表
- 如何刷新数据表列表
- 如何在执行内联编辑时在数据表中显示包含值的下拉列表