Перезагрузить динамические данные

#jquery #jquery-plugins #dynatable

#jquery #jquery-плагины #динамический

Вопрос:

Я использую 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 /

Ответ №1:

Ну, через пару часов я справился с этим с помощью этого кода:

 $.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();  
});