我正在使用Knockout进行数据绑定,并使用dataTable + YADCF进行排序和过滤。每次需要进行AJAX调用并通过Knockout刷新表数据(右侧)时,单击“类别”节点(左侧)时,我的方案并不复杂。这个Knockout绑定功能可以正常工作。
HTML代码
<table class="pdm-data-table pdmList" id="ListCatAttrVal" data-link="row">
<thead>
<tr>
<th>Display Name</th>
<th>Display Source</th>
</tr>
</thead>
<tbody id="listAttribute" data-bind="foreach: attributevalue">
<tr>
<td data-bind="text: dispName"></td>
<td data-bind="text: dispSrc"></td>
</tr>
</table>
淘汰赛型号代码
if (!ko.dataFor(document.getElementById("listAttribute"))) {
var attributeModel = function () {
this.attributevalue = ko.observableArray();
};
attributeBinding = new attributeModel();
ko.applyBindings(attributeBinding, document.getElementById("listAttribute"));
}
问题是在为表格
应用DataTable之后$("#ListCatAttrVal").dataTable().fnClearTable();
for (var x in response.attributes) {
attributeBinding.attributevalue.push(response.attributes[x]);
}
$("#ListCatAttrVal").dataTable();
此后,数据表排序无法正常工作。 我正在尝试删除现有生成的dataTable,并在每次单击类别节点时重新启动它。但它没有按预期工作。
答案 0 :(得分:0)
我在使用敲除和数据表时遇到了类似的问题 - 我在数据表中的绑定似乎最初没有用。作为一种解决方法,我最终以下列方式初始化数据表:
var table = $("#ListCatAttrVal").dataTable();
table.fnPageChange(0, true);
在调用fnPageChange(或我认为的数据库库的任何其他函数)之后,绑定似乎正在起作用。