我正在使用dynatable来启动我的桌子。这就是我的使用方式:

function getData(obj) {
    $.getJSON("AjaxEngine/AddPayment.aspx", { sender: "seller-factor", id: 1 })
            .done(function (data) {

                var dynatable = $('#factors-table').dynatable({
                    dataset: {
                        records: data.Factors
                    },
                    features: {
                        paginate: false,
                        search: false,
                        recordCount: true,
                        perPageSelect: false
                    }

                })
                .bind('dynatable:afterProcess', bindSelectRow);
}


getData()将在change()select事件时触发。当用户第一次选择一个项目时,它可以正常工作,但是当选定的项目发生更改时,它将不会加载新数据。我几天前在插件中问过,但是没有答案。

我尝试了多种方法,例如:

function getData(){
            $.getJSON("AjaxEngine/AddPayment.aspx", { sender: "seller-factor", id: 1 },
            function (data) {
                var dynatable = $('#factors-table').data('dynatable');
                dynatable.records.updateFromJson({records: data});
                dynatable.records.init();
                dynatable.process();
            });

        }


它说dynatable.records是未定义的,而当我登录dynatable时它是一个对象。
我认为,作为一种技巧,可以检查dynatable是否应用于表,如果是,先销毁它,然后重新应用它,但是我不知道该怎么做。

JSFiddle:http://jsfiddle.net/maysamsh/pDVvx/16/

最佳答案

好吧,几个小时后,我使用以下代码对其进行了管理:

$.getJSON("AjaxEngine/AddPayment.aspx", {
    sender: "seller-factor", id: obj.val() },
    function (data) {
    var dynatable = $('#factors-table').dynatable({
    dataset: { records: data.Factors } },
    { features: { pushState: false }}).data("dynatable");
                        dynatable.settings.dataset.originalRecords =  data.Factors;
                        dynatable.process();
});

09-25 20:00