我在数据库中有一个数据表public TagSuggestBox(TagBox tb, SuggestOracle oracle, ValueBoxBase<String> box, SuggestionDisplay dsd) {
super(oracle, box, dsd);
this.tagbox = tb;
addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {
@Override
public void onSelection(SelectionEvent<Suggestion> event) {
if (event.getSelectedItem() != null ) {
log(event.getSelectedItem().toString());
tagbox.addSuggestion();
((DefaultSuggestionDisplay) getSuggestionDisplay()).hideSuggestions();
}
}
public native void log(String message) /*-{
try{
console.log(message);
}catch(ex){
}
}-*/;
});
}
,列为:[CustomerEvent]
。
我试图只向数据表添加一行(将来可能会更多),但是我不知道该怎么做。
以下ajax请求将输出以下内容:Advices, Transports and Deleted
{Advices: 0, Transports: 1, Deleted: 0}
因此,它肯定会返回正确的信息。但是,如果我想在数据表中查看此信息,则使用以下ajax请求,但找不到任何数据:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "../json/stats.aspx?t=customer-stats" + "&n=" + caseId
}).done(function (data) {
console.log(data)
它显示“表中没有可用数据” ,并且不会打印出$("#example").DataTable({
"ajax": {
"url": "../json/stats.aspx?t=customer-stats" + "&n=" + caseId,
"dataType" : "json",
"dataSrc" : ""
},
"columns": [
{ "data": "Advices" }
]
});
号。 Ajax URL对数据库执行SQL查询,所以也许与"0"
有关?另外,我不确定返回的是对象还是json-string。
HTML:
"data"
答案 0 :(得分:1)
如果要使用从单独的AJAX调用获得的数据加载数据表,请考虑以下事项:
var table = $("#example").DataTable();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "../json/stats.aspx?t=customer-stats" + "&n=" + caseId
}).done(function (data) {
// onsole.log(data)
//if there is only one data, eg: data = {Advices: 0, Transports: 1, Deleted: 0}
table.row.add($("<tr><td>"+data.Advices+"</td></tr>")).draw();
// if multiple or array, eg: data = [{Advices: 0, Transports: 1, Deleted: 0}, {Advices: 1, Transports: 1, Deleted: 0}, {Advices: 2, Transports: 1, Deleted: 0}];
// disable comment to use it :)
/*for (i in data) {
table.row.add($("<tr><td>"+data[i].Advices+"</td></tr>")).draw();
}*/
})
否则,如果您希望数据表从ajax传递数据,那么请考虑在数据表中进行服务器端处理。 检查以下参考: https://datatables.net/examples/data_sources/server_side.html
您必须向数据表选项提供ajax网址
例如:
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "../json/stats.aspx?t=customer-stats" + "&n=" + caseId,
"columns": [
{ "data": "Advices" }
]
} );
您的Ajax页面必须返回如下的json:
{
"draw": 1,
"recordsTotal": 1,
"recordsFiltered": 1,
"data": [
[
"Advice1"
]
]
}
注意:recordsTotal =>表中的总记录; recordsFiltered =>应用过滤器后获得的总记录