我一直坚持这个问题已有一段时间了,我无法让它发挥作用。它现在什么都不做,我不知道我做错了什么。
JSON数据:
{"$id":"1","content":"hej","fname":"Emanuel","subject":"hejsan"}
JQuery方法:
function get_latest_messages(id) {
$.getJSON('http://localhost:xxxxx/api/value/' + id, function (data) {
var tr;
for (var i = 0; i < data.length; i++) {
tr = $('#tableMessage');
tr.append("<td>" + data[i].fname + "</td>");
tr.append("<td>" + data[i].content + "</td>");
tr.append("<td>" + data[i].subject + "</td>");
$('#tableMessage').append(tr);
}
});
HTML-表代码:
<table border="1" id="tableMessage">
<tr>
<th>Från</th>
<th>Ämne</th>
<th>Meddelande</th>
</tr>
</table>
ASP.net,Page_load代码。 id在方法中声明。:
Page.ClientScript.RegisterStartupScript(this.GetType(), "clientScript", "<script language=JavaScript>get_latest_messages("+id+");</script>");
答案 0 :(得分:0)
首先,直接在请求对象中处理回发方法是不好的设计。我们都知道这是jQuery如何记录实现,但它是一个反模式。它有效,但很难阅读。而是构造将处理回发数据的方法,在本例中为handleJson
您还忘记了实际添加TD所必需的TR元素。在循环外选择表格也更有效。
function get_latest_messages(id) {
// Handle your incomming data from the api
function handleJson(data) {
// the data parameter is supposed to be your json
var table = $('#tableMessage');
for (var i = 0; i < data.length; i++) {
table.append("<tr>" +
"<td>" + data[i].fname + "</td>" +
"<td>" + data[i].content + "</td>" +
"<td>" + data[i].subject + "</td>" +
"</tr>");
}
}
// Call
$.getJSON('http://localhost:xxxxx/api/value/' + id, handleJson);
}
Hejförestenhhlycka直到!