fnDraw清除但不重新加载DataTable Datasrc MVC JSON Api
我怎样才能让它每分钟左右在点击按钮或定时器时刷新一次?多谢各位 这就是我点击“刷新”时的样子。它清除数据,但不重新加载数据 这是查看代码fnDraw清除但不重新加载DataTable Datasrc MVC JSON Api,json,asp.net-mvc,datatables,asp.net-ajax,Json,Asp.net Mvc,Datatables,Asp.net Ajax,我怎样才能让它每分钟左右在点击按钮或定时器时刷新一次?多谢各位 这就是我点击“刷新”时的样子。它清除数据,但不重新加载数据 这是查看代码 <h2>Fixtures</h2> <button id="Refresh" type="button">Refresh</button> <table id="fixtures" class="table table-bordered table-hover">
<h2>Fixtures</h2>
<button id="Refresh" type="button">Refresh</button>
<table id="fixtures" class="table table-bordered table-hover">
<thead>
<tr>
<th>Fixture</th>
<th>Market</th>
</tr>
</thead>
<tbody></tbody>
</table>
@section scripts
{
<script>
$(document).ready(function () {
$("#fixtures").DataTable({
ajax: {
url: "/api/fixtures",
dataSrc: ""
},
columns: [
{
data: "eventName",
},
{
data: "marketName"
}
]
});
var oFixtureTable = $('#fixtures').dataTable();
$("#Refresh").click(function (e) {
oFixtureTable.fnClearTable(0),
oFixtureTable.fnDraw();
});
});
</script>
}
固定装置
刷新
固定装置
市场
@节脚本
{
$(文档).ready(函数(){
$(“#装置”).数据表({
阿贾克斯:{
url:“/api/fixtures”,
dataSrc:“
},
栏目:[
{
数据:“eventName”,
},
{
数据:“marketName”
}
]
});
可伸缩变量=$('#fixtures').dataTable();
$(“#刷新”)。单击(函数(e){
oFixtureTable.fnClearTable(0),
oFixtureTable.fnDraw();
});
});
}
编辑:只需将DataTable更改为下面建议的变量赋值,即可导致DataTable完全不呈现(无论是否有任何其他刷新编码)
$(文档).ready(函数(){
//$(“#装置”).数据表({
var FixtureTable=$(“fixtures”).DataTable({
阿贾克斯:{
url:“/api/fixtures”,
dataSrc:“
},
首先,匈牙利符号(fnFoo
,oTable
,aBar
)在从Datatables 1.9迁移到1.10的过程中已经过时。由于您有一些选项不使用该符号,我假设您使用的是1.10+
代码不能按您所希望的方式工作的原因是您首先清除了表(销毁所有行)然后重新绘制表格。请注意,您没有重新加载数据,只是再次绘制表格。虽然可能有1.9版本的重新加载,但我将为您提供1.10+解决方案,这可能是您应该使用的
要重新加载表,只需调用TableName.ajax.reload()
。请参阅文档
另一个需要注意的细节是,您正在初始化datatable,然后将其分配给一个变量,但您可以而且应该在一个步骤中完成此操作。而不是:
//Make sure you use the capital D, lowercase creates a table, uppercase returns an API object
$("fixtures").DataTable({
//.......
});
var oFixtureTable = $("fixtures").dataTable();
你应该:
//Might as well get rid of the 'o' (though you don't have to)
var FixtureTable = $("fixtures").DataTable({
//.......
});
//Don't need the other assignment now.
然后将刷新方法的内部更改为:
FixtureTable.ajax.reload();
首先,匈牙利符号(
fnFoo
,oTable
,aBar
)在从Datatables 1.9迁移到Datatables 1.10时已经过时。由于您有一些选项不使用该符号,我假设您使用的是1.10+
代码不能按您所希望的方式工作的原因是您首先清除了表(销毁所有行)然后重新绘制表格。请注意,您没有重新加载数据,只是再次绘制表格。虽然可能有1.9版本的重新加载,但我将为您提供1.10+解决方案,这可能是您应该使用的
要重新加载表,只需调用TableName.ajax.reload()
。请参阅文档
另一个需要注意的细节是,您正在初始化datatable,然后将其分配给一个变量,但您可以而且应该在一个步骤中完成此操作。而不是:
//Make sure you use the capital D, lowercase creates a table, uppercase returns an API object
$("fixtures").DataTable({
//.......
});
var oFixtureTable = $("fixtures").dataTable();
你应该:
//Might as well get rid of the 'o' (though you don't have to)
var FixtureTable = $("fixtures").DataTable({
//.......
});
//Don't need the other assignment now.
然后将刷新方法的内部更改为:
FixtureTable.ajax.reload();
如果您只需要一个刷新按钮,则可以更轻松地使用下载生成器中的选项。或者,如果您只想下载并将其作为单个文件包含,请使用例如 然后你可以使用:
var Fixturetable = $("#fixtures").DataTable({
ajax: {
// ajax setup
},
dom: 'Bfrtip',
columns: [
{
// your columns
}
],
buttons: [
{
text: 'Refresh Table',
action: function () {
Fixturetable.ajax.reload();
}
}
]
});
另请参见示例获取想法(其用于“重新加载时保留选择”,但显示了如何使用按钮)-文档和。如果您只需要一个刷新按钮,则使用下载生成器中的选项可能更容易。或者如果您只想下载并将其作为单个文件包含,请使用 然后你可以使用:
var Fixturetable = $("#fixtures").DataTable({
ajax: {
// ajax setup
},
dom: 'Bfrtip',
columns: [
{
// your columns
}
],
buttons: [
{
text: 'Refresh Table',
action: function () {
Fixturetable.ajax.reload();
}
}
]
});
另请参见示例以获取想法(其用于“重新加载时保留所选内容”,但显示了如何使用按钮)-文档和。通常,您应该将代码作为标记格式文本(缩进4空格)而不是屏幕截图发布。通常,您应该将代码作为标记格式文本(缩进4空格)发布而不是作为屏幕截图。谢谢你,Chris。请参阅上面的编辑将DataTable分配给变量,导致DataTable根本无法呈现。是的,版本1.10.11正在努力将列与变量方法集成。谢谢你,Chris。请参阅上面的编辑将DataTable分配给变量,导致DataTable根本无法呈现。是的,版本1.10.11Struggling使用变量方法集成列。我喜欢詹姆斯,工作得很好!再次感谢你(Y)我喜欢詹姆斯,工作得很好!再次感谢你(Y)