私は大きなリストを持っています。私は500のサイズにグルーピングしています。私は、次のJavaスクリプトコードを使用してリストをテーブルにレンダリングしています。Jqueryを使用してテーブルにビッグリストをレンダリングする
var counter;
$(document).ready(function() {
var table = $('#example').DataTable();
$('#example tbody').on('click', 'tr', function() {
$(this).toggleClass('selected');
});
$('#button').click(function() {
alert(table.rows('.selected').data().length + ' row(s) selected');
});
});
function getData(submit) {
var pointer;
var msg = "";
var company = "";
if (submit == 1) {
//On click of get more
counter += 500;
pointer = counter;
} else {
//On load
counter = 500;
pointer = 500;
}
$.ajax({
type: "GET",
url: "/biz/getListOfFreeMembers",
data: {
limit: pointer
},
success: function(data) {
$.each(data, function(i, obj) {
var t = $('#example').DataTable();
t.row.add([
obj.companyName,
obj.mobileNo,
obj.companyWebsite,
obj.firstName,
obj.address,
obj.createDate
]).draw();
});
},
error: function(e) {
alert("error" + e.Message);
}
});
}
<link href="//cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
<div id="demo" class="col-sm-12">
<div class="table-responsive">
<table id="example" class="table">
<thead>
<tr>
<th>Company Name</th>
<th>Mobile Number</th>
<th>Website</th>
<th>Person Name</th>
<th>Address</th>
<th>Date of Creation</th>
</tr>
</thead>
<tbody id="list_of_users">
</tbody>
</table>
</div>
</div>
<a href="javascript:getData('1')">Get more data</a>
の表は、最初に正しくレンダリングされますが、私が得るより多くのデータリンクをクリックしたときに、データの新しいセットは、新しいセットの代わりに、既存のセットに追加されていませんより多くのデータを取得するために各クリックごとに最初に表示され、次に古いセットなどが表示されます。新しいデータセットをテーブルの古いデータセットに追加する方法を提案してください。ありがとうございました。
注意:コードが – charlietfl
のコードを挿入するために使用したスニペットエディタのすぐ右側に*「コード整頓」*ボタンがあります。カウンタが2回目の実行では存在しないためです。 – Demonyowh
カウントは2回目の実行それ以降はすべて実行されます。これはグローバル変数です(そして関数の外側でもあります)。新しいリストを古いものに追加するだけです。それ以外の場合は正常に動作しています。 – user7749322