#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
к таблице, и если да, сначала уничтожьте ее, а затем повторно примените, но я не знаю, как это сделать.
Ответ №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();
});