我们使用如下的datatable插件来绑定数据并在网格中显示。下面是代码:
productJs = {
apiBaseUrl: "/api/Admin/GetProductsPurchasedOrInCart",
dataTableID: "#products_Grid",
ready: function () {
alert('yyyy');
},
jqueryDatatableSetting: {
"aaSorting": [],
"aoColumns": [
{ "mDataProp": "ProductName" },
{ "mDataProp": "Quantity" },
{ "mDataProp": "unitPrice" }
]
},
jqueryDatatable: null,
bindJqueryControls: function (e) {
},
loadProducts: function (oderNo) {
//alert(oderNo);
var apiUrl = this.apiBaseUrl + '?IsPurchased=Y&OrderNo=' + oderNo;
$.ajax({
url: apiUrl,
type: "GET",
complete: function (resp) {
if (resp.status == 200 || resp.status == 201) {
$('#products_Grid > tbody').html('');
productJs.bindDatatable(resp.responseJSON);
} else if (resp.status == 404 || resp.status == 400) {
}
},
error: function () {
}
});
}
, bindDatatable: function (records) {
if ($("#products_Grid_wrapper").length == 0) {
//it doesn't exist
this.productdataTableID = $(this.dataTableID).dataTable(this.jqueryDatatableSetting);
} else {
var table = $(this.dataTableID).DataTable();
table.clear().draw();
}
if (records.length)
this.productdataTableID.fnAddData(records);
}
}
让我解释一下发生了什么:我有一个网格绑定t \与上面的\相同,即orderJs。我们希望在用户单击订单网格中的详细信息按钮时显示订单详细信息。 Order Grid也使用数据表,因为我绑定了Products的数据。
现在我做了什么:我已经完成了产品网格中订单号码绑定数据,第一次工作正常。意思是当我点击“订单详情”时,会打开弹出的正确产品。现在我关闭了弹出窗口。现在点击任何其他订单详细信息按钮,现在当弹出窗口打开它获取旧订单的产品+新订单的产品。
我想在重新绑定之前清除产品网格。
我尝试了一些但没有运气的话,你能不能专家,请检查我做错了。
答案 0 :(得分:0)
HI我得到了答案..哇..
我刚刚通过添加“fnClearTable”functiona
更新了我的下面的方法bindDatatable: function (records) {
if ($("#products_Grid_wrapper").length == 0) {
//it doesn't exist
this.jqueryproductDatatable = $(this.dataTableID).dataTable(this.jqueryDatatableSetting);
} else {
this.jqueryproductDatatable.fnClearTable();
}
if (records.length) {
this.jqueryproductDatatable.fnAddData(records);
}
}
感谢大家的支持...... :)