我有下面的jQuery dataTable
$("#my-datatable").dataTable( {
"bProcessing" : true,
"bPaginate": false,
"bLengthChange": false,
"bFilter": true,
"bSort": false,
"bInfo": false,
"bAutoWidth": false,
"sAjaxSource" : "/myServer/getAllWidgets",
"sAjaxDataProp" : "",
"bDestroy" : true,
"fnServerData" : function(sSource, aoData, fnCallback) {
aoData.push({
"name" : "widgetName",
"value" : wName
});
request = $.ajax({
"dataType" : "json",
"type" : "GET",
"url" : sSource,
"data" : aoData,
"success" : fnCallback
});
},
"aoColumns" : [
{
"mDataProp" : "widgetType"
},
{
"mDataProp" : "widgetValue"
},
{
"mDataProp" : "widgetFactor"
}
]
});这成功地访问了我在/myServer/getAllWidgets的web服务器,并在我的UI上填充了一个3列的dataTable (列标题是: Type、Value和Factor)。到目前一切尚好。
问题是,支持此widgets MySQL表的dataTable经常发生更改,我希望在UI中添加一个按钮,以便当用户单击该按钮时,dataTable会被刷新,这意味着/myServer/getAllWidgets将再次运行,并向用户显示正确的记录/值。
在过去的一天里,我一直试着让它发挥作用,而我所尝试的一切都失败了。就我个人而言,我不在乎如何获得这种“刷新”功能,也不关心解决方案是否完全不涉及fnReloadAjax (这正是我一直在努力实现的)。我只需要一些有用的东西:
<div id="refresh-button-div">
<input type="button" id="refreshButton" onclick="refreshData"/>
</div>
// In JS
$("#refreshButton").click(function() {
// ???
});提前谢谢。
发布于 2012-12-06 14:48:21
您可以使用fnDraw函数重新绘制表。试试这个:
var $dataTable = $("#my-datatable").dataTable({ /* setup */ });
$("#refreshButton").click(function() {
$dataTable.fnDraw();
});阅读fnDraw条目在文档中。
发布于 2012-12-06 15:36:36
我使用fnReloadAjax();从ajax源重新加载表数据。
$("#refreshButton").click(function() {
oTable.fnReloadAjax();
});只要改变
$("#my-datatable").dataTable( {...转到
oTable = $("#my-datatable").dataTable( {...//make oTable a global var in your js您可以从这里获取这个可数据插件源代码fnReloadAjax,将其放到一些js文件中,并将其包含在您的页面中.
https://stackoverflow.com/questions/13746000
复制相似问题