为什么引导动态表分页不能工作
Why bootstrap dynamic table pagination is not working?
我正在研究Bootstrap表分页,但有一件事我发现它在静态内容上工作得很好,但在动态内容中它根本不起作用。
静态代码<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
<table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>USN</th>
<th>Name</th>
<th>Branch</th>
<th>Batch</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
</tr>
<tr>
<td>Garrett Winters</td>
<td>Accountant</td>
<td>Tokyo</td>
<td>63</td>
</tr>
</tbody>
</table>
动态表<script>
$(document).ready(function() {
$('#example').DataTable();
});
</script>
<table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>USN</th>
<th>Name</th>
<th>Branch</th>
<th>Batch</th>
</tr>
</thead>
<tbody id="user_list">
</tbody>
</table>
<script>
var ref = firebase.database().ref("Students/");
var newTable='';
ref.on('child_added', function(snapshot) {
snapshot.forEach(function(snap) {
var usn = snap.val().usn;
var name = snap.val().studentName;
var colname = snap.val().collegeName;
var branch = snap.val().branch;
var batch = snap.val().batch;
newTable+='<tr data-value='+usn+' id='+usn+'>';
newTable+='<td>'+usn+'</td>';
newTable+='<td>'+name+'</td>';
newTable+='<td>'+branch+'</td>';
newTable+='<td>'+batch+'</td>';
newTable+='</tr>';
document.getElementById('user_list').innerHTML=newTable;
});
});
</script>
在上面的代码中,你可以看到在静态内容中,它能够计算行数,但在动态内容中,它无法计算表中有多少行,因为表是动态创建的。
请仔细检查我上面的代码,如果你有任何解决方案,请告诉我。
谢谢
您的代码不工作,因为您在文档准备就绪的时刻调用初始化对象(使用$('#example').DataTable();
),在数据生成之前。
你(至少)有两个选择:
-
生成动态数据后呼叫
$('#example').DataTable();
比如:ref.on('child_added', function(snapshot) { snapshot.forEach(function(snap) { var usn = snap.val().usn; // more code document.getElementById('user_list').innerHTML=newTable; $('#example').DataTable(); }); });
-
您使用
snapshot
函数生成的不是表,而是数据集。然后,在初始化对象中使用内置data
选项,传入数据集。var dataSet = [ [ "Tiger Nixon", "System Architect", "Edinburgh", "61" ], [ "Garrett Winters", "Accountant", "Tokyo", "63" ] ]; $('#example').DataTable( { data: dataSet, columns: [ { title: "Name" }, { title: "Position" }, { title: "Office" }, { title: "USN" } ] } );
在这里您可以找到第二个选项的文档。
希望有帮助!
相关文章:
- jQuery分页刷新:分页不记得以前页面中更改的样式
- AngularJS - 分页不渲染$scope.手表更换(包括代码笔)
- 使用jQuery在jsp中分页不起作用
- Kendo UI网格分页不起作用
- 角度UI网格无限滚动/分页不保留以前的数据
- ExtJS网格分页不起作用
- 角度 NgTable 分页不起作用
- 角度结果和分页不会在过滤器上更新
- GridView客户端分页不工作
- extjs6分页不起作用
- JQuery网格分页不可见
- 试着学习Angular——为什么这里的分页不能正常工作?
- carouFredSel滑块-上一页,下一页和分页不工作
- 分页-不工作
- 为什么引导动态表分页不能工作
- AngularJS - ngrid不显示正确的页面大小&分页不工作
- 分页不能正常工作
- jqGrid分页不能使用json数据类型
- Jeasyui DataGrid分页不能正常工作
- (. .)美元.分页不是一个函数