我有一个需要填充JQuery表的Ajax web方法。我的代码没有产生任何错误,但我在表格中看不到任何数据。
这是WebMethod:
这里是返回的JSON数据:
目前正在发送到这样的基本表:
最终结果是:
有人可以指出为什么没有显示数据吗?
*编辑*
以下是创建JSON数据的方法代码。这是由WebMethod调用的,它返回一个字符串
try
{
rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
using (JsonWriter jsonwriter = new JsonTextWriter(sw))
{
jsonwriter.WriteStartArray();
int totalrecords = 0;
while (rdr.Read())
{
jsonwriter.WriteStartObject();
int fields = rdr.FieldCount;
for (int i = 0; i < fields; i++)
{
jsonwriter.WritePropertyName(rdr.GetName(i));
jsonwriter.WriteValue(rdr[i]);
}
jsonwriter.WriteEndObject();
totalrecords++;
}
jsonwriter.WriteEndArray();
}
}
这是WebMethod:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string ApprovalInfo(string messageId)
{
string json = string.Empty;
json = GetComments(messageId);
return json;
}
*编辑* 我已经安装并运行了DataTables调试程序,该程序产生以下内容:
"sAjaxDataProp": "[{\"UserName\":\"watherton\",\"EnteredDate\":\"2013-07-18T14:36:46.387
\",\"Comment\":\"some comment 2\"},{\"UserName\":\"watherton\",\"EnteredDate\":\"2013-07-
18T16:12:41.753\",\"Comment\":\"some comment 3\"}]",
"aoColumns": [{
"mDataProp": "UserName"
}, {
"mDataProp": "EnteredDate"
}, {
"mDataProp": "Comment"
}]
这对我来说不合适。我在Firebug中完成了一个调试,并且在响应选项卡中返回了上面的数据流,JSON选项卡看起来不同。所以,我猜我需要告诉WebMethod / AJax调用使用JSON而不是响应。也许?
答案 0 :(得分:0)
尝试调用fnDraw。
上的示例$(document).ready(function() {
var oTable = $('#example').dataTable();
// Re-draw the table - you wouldn't want to do it here, but it's an example :-)
oTable.fnDraw();
} );
另外,尝试使用.done和.fail而不是成功:和错误: jQuery.ajax handling continue responses: "success:" vs ".done"?
如果这些建议无效,请尝试在document.ready上的代码中使用静态数据初始化表 然后,在ajax调用中,只需执行:
exampleTable.fnClearTable();
exampleTable.fnAddData(mydata);
exampleTable.fnDraw();