【发布时间】:2016-12-24 16:33:10
【问题描述】:
我有一种情况,我将 jQuery-AJAX 响应中的数据直接注入到 DOM 中,如下所示:
.done(function(data) {
StopLoading();
var brands = $('<table />').append(data).find('#tableProducts').html();
$('#tableProducts').html(brands);
var dbtb = $('<table />').append(data).find('#datatable-responsive').html();
$('#datatable-responsive').html(dbtb);
$('#datatable-responsive').dataTable({
"bDestroy": true
});
var header = $('<div />').append(data).find('.bs-glyphicons').html();
$('.bs-glyphicons').html(header);
$('#tableProducts thead, #header').fadeIn("slow");
$('#emptyText').hide();
}
})
这是棘手的部分:
var brands = $('<table />').append(data).find('#tableProducts').html();
$('#tableProducts').html(brands);
var dbtb = $('<table />').append(data).find('#datatable-responsive').html();
$('#datatable-responsive').html(dbtb);
$('#datatable-responsive').dataTable({
"bDestroy": true
});
请注意,我从数据对象中获取表,然后将其注入浏览器的 DOM。之后我销毁并重新创建数据表...
我想在这里更改的是,我不直接将所有项目直接注入 DOM,而是将其传递给数据表,以便数据表可以注入假设只有 10-100 个它找到的第一个项目并将它们按原样拆分成页面...
我该怎么做?知道我在 DATA 对象中接收到的数据是 HTML,而 jQuery 中的 Datatable 只接收 JSON 格式,这就是导致我出现问题的原因。
所以问题是:
我可以将 HTML 数据传递给 jQuery 数据表,让它只向表中注入 100 个项目(而不是像现在这样的 1000-2000)
如果 #1 不可行,我可以从服务器返回 JSON,然后将其注入 DT。
-
如果 #2 可行,我如何转换列表,TestData 类型如下:
public class TestData { public string StoreName { get; set; } public string Sales { get; set; } public string Address { get; set; } public string City { get; set; } }
转成 jQuery 数据表可接受的 JSON 格式?
【问题讨论】:
-
似乎您正在尝试手动解决数据表插件的强大内置功能,如果配置正确,这些功能将完成您已经描述的所有操作
-
@charlietfl 你说得很好!但是有什么方法可以将数据直接传递到数据表中,这样我就可以避免向 DOM 注入 1000-2500 个项目,这是我的主要目标......由于数据表已经实现了分页,我只想将它与我已经...
-
P.S.我也在尝试弄清楚如何正确设置它,以便在将数据注入 DOM 时我的浏览器网页不会冻结
-
是的,您可以通过多种方式传递数据,包括简单地指向一个 url。浏览文档站点上的示例
标签: javascript c# jquery datatables