通过变量中的json数据在js中创建数据表
Create datatable in js via json data in a variable?
现在我遇到了一个问题。我想使用ajax通过使用来自sql server数据库的数据来显示一个数据表。当前的状态是我已经使用ajax调用一个Handler。Ashx连接SQL服务器并将数据转换为json(使用newtonsoft.json)。在ajax中,所有json数据都是从Handler接收到的。并存储在一个变量"msg"中,该变量可以成功地显示在页面上。我想把这个"msg"放入一个数据表,但一直失败。我尝试了几乎所有的在线方法来设置数据表,但仍然给出不同的错误。我想在js中创建一个数据表,并填写我的json数据。但是结果要么为空,要么表中没有可用的数据。
下面是代码和json数据的样子。
js:
$(document).ready(function () {
$("#eventsButton").click(function () {
$.ajax({
type: "POST",
url: "../Handler.ashx",
//contentType: "application/json",
data: { postcode: $("#eventsPostcodeTextbox").val() },
cache: false,
success: function (msg) {
//for (var i in msg) {
// $("#eventGrid").append(msg[i]);
//}
//var jsonStr = JSON.stringify(msg);
document.getElementById("result").innerHTML = msg;
$('#eventtable').dataTable({
//"paging": false,
//"searching": false,
//"retrieve": true,
//"bProcessing": true,
//"data": msg.data,
//"datatype": "JSON",
//"ajax": "HandlerAll.ashx",
//"aaData": JSON.parse(msg),
//"ajax":
//"dataSrc":virtualTable
//"aoColumns": [
// { "mData": "ID" },
// { "mData": "FESTIVAL" },
// { "mData": "SUBURB" },
// { "mData": "POSTCODE" },
// { "mData": "WEBSITE" },
// { "mData": "DESCRIPTION" }
// ]
});
},
error: function (data) {
alert("Server error.");
}
})
});
});
json数据(大小取决于搜索条件,表列应该有"ID","Festival"等,但没有"virtualTable"):
{ "virtualTable": [ { "ID": "1", "FESTIVAL": "Antipodes Festival", "SUBURB": "Lonsdale Street, Melbourne", "POSTCODE": "3000", "WEBSITE": "http://www.antipodesfestival.com.au/", "DESCRIPTION": "The greek precinct in melbourne cbd will transform into a huge, free street festival with the hosting of the antipodes lonsdale street festival which will hold sway from 14 february 2015 to 15 february 2015." }, { "ID": "5", "FESTIVAL": "Boite Singers Festival", "SUBURB": "Victoria", "POSTCODE": "3000", "WEBSITE": "http://boite.com.au/index.php", "DESCRIPTION": "The boite singers festival brings you four days of vocal inspiration and sheer fun on the second weekend of january each year." } ] }
既然你得到一个JSON作为响应,我会尝试将其转换为JSON对象,采取virtualTable部分,它是JSON中的一组记录,并将其转换为数组将其添加到我的表。
$(document).ready(function () {
$("#eventsButton").click(function () {
$.ajax({
type: "POST",
url: "../Handler.ashx",
// dataType: "json",
data: { postcode: $("#eventsPostcodeTextbox").val() },
success: function (msg) {
var jdata = $.parseJSON(msg);
jdata = jdata.virtualTable;
if (jdata.length != 0) {
var array_data = [];
var temp_array = [];
$(jdata).each(function(key, value) {
temp_array = [];
temp_array = [value.ID,
value.FESTIVAL,
value.SUBURB,
value.POSTCODE,
value.WEBSITE,
value.DESCRIPTION
];
array_data[array_data.length] = temp_array;
});
$('#eventtable').dataTable().fnAddData(array_data);
$('#eventtable').dataTable().fnDraw();
},
error: function (data) {
alert("Server error");
}
<解决方案/strong>
使用下面的代码初始化表:
$('#eventtable').dataTable({
data: msg.virtualTable,
columns: [
{ data: "ID" },
{ data: "FESTIVAL" },
{ data: "SUBURB" },
{ data: "POSTCODE" },
{ data: "WEBSITE" },
{ data: "DESCRIPTION" }
]
});
演示strong>
相关文章:
- 更改使用Chart.js创建的图表中的轴线颜色
- 为node.js创建一个动态的restful api
- 使用transducer-js和most.js创建一个从Json到streams的管道
- 基本D3.js:创建或更新元素
- 如何使用d3.layout.cloud.js创建一个包含单词及其权重的csv的单词云
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 主干网的生命周期.js创建过程中的视图
- 如何使用条带和节点.js创建费用
- Kinetic.js–创建网格
- Node.js创建一个模块来收集内存(ram)信息
- 使用Sequelize.js创建简单PUT请求时出错
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- JS:创建从索引0开始的所有子字符串的最快方法
- 使用纯JS创建具有id和样式的元素
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何使用Fabric.js创建多个形状
- 如何在没有类属性的情况下使用Rangy.js创建标记
- 关于使用JS创建和附加元素的良好实践
- 如何使用原生JS创建脚本的完整副本
- D3.js-创建一个矩形