空JQuery数据表,c#WebMethod
我有一个Ajax webmethod,需要填充JQuery表。我的代码没有产生错误,但我在表中没有看到任何数据 以下是WebMethod:空JQuery数据表,c#WebMethod,c#,jquery,webmethod,C#,Jquery,Webmethod,我有一个Ajax webmethod,需要填充JQuery表。我的代码没有产生错误,但我在表中没有看到任何数据 以下是WebMethod: [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public static string ApprovalInfo(string messageId) { string json = string.Empty; json = G
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string ApprovalInfo(string messageId)
{
string json = string.Empty;
json = GetComments(messageId);
return json;
}
以下是返回的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();
}
}
*编辑*
我已安装并运行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中进行了调试,上面的数据流在response选项卡中返回,JSON选项卡看起来不同。所以,我想我需要告诉WebMethod/AJax调用使用JSON而不是响应。也许吧?试着打电话给fnDraw
在上找到的示例
另外,尝试使用.done和.fail代替success:和error:
如果这些建议没有帮助,请尝试在document.ready上用代码中的静态数据初始化表
然后,在ajax调用中,只需执行以下操作:
exampleTable.fnClearTable();
exampleTable.fnAddData(mydata);
exampleTable.fnDraw();
在我离开前节省时间。如果你硬编码一些JSON数据,比如:
{“UserName”:“watherton”,“EnteredDate”:“2013-07-18”,“Comment”:“Comment 1”}
,调用会起作用吗?如果没有,那么您如何将数据提供给dataTable
;否则,ASP.NETAJAX页面方法返回JSON数据的方式就是一个问题。但是网页中仍然没有乐趣数据的JSON
选项卡是什么样子的?另外,你能发布你的ApprovalInfo
page方法代码吗?我明天就把它拿出来,卡尔。嗨,Nullius,fnDraw也不起作用。将尝试对返回的字符串进行硬编码,并查看其结果。@csharpnewee硬编码的数据对您有何帮助?还有什么问题吗?
exampleTable.fnClearTable();
exampleTable.fnAddData(mydata);
exampleTable.fnDraw();