我有一个字符串作为C#代码后面的数据表传递给jQuery。 因为我使用两个功能:
C#
[System.Web.Services.WebMethod(EnableSession = true)]
public static List<ListItem> GetImageArray(string AccNo)
{
string result = string.Empty;
var obj = new AccountTransaction();
DataTable dt = obj._commonobj.SearchAccNo(AccNo, "", "GETIMAGE");
List<ListItem> datas = new List<ListItem>();
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
string CustImg = Convert.ToString(row["Customer Image"]);
string SignImg = Convert.ToString(row["Sign"]);
ListItem listitem = new ListItem(CustImg, SignImg);
datas.Add(listitem);
}
}
return datas;
}
客户端
$.ajax({
type: "POST",
url: "AccountTransaction.aspx/GetImageArray",
data: "{'AccNo':'" + col1 + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnImgSuccess,
failure: function (response) {
alert(response.d);
}
});
function OnImgSuccess(response) {
alert(response.d);
});
}
return datas;
返回2行,alert(response.d)
未显示任何行
我尝试使用$.map(data, function (listitem)
函数,但没有结果。
$.map(data, function (listitem) {
$('<tr> <td>' + listitem.CustImg + '</td> <td>' + listitem.SignImg + ' </td> </tr>').appendTo(".tblData");
});
请帮忙。!
答案 0 :(得分:0)
您的数组位于d
属性中,因此您可以使用map
函数,但使用的是data.d
,而不只是data
。
然后ListItem
属性为Text
和Value
,因此您的代码应如下所示:
$.ajax({
type: "POST",
url: "AccountTransaction.aspx/GetImageArray",
data: "{'AccNo':'" + col1 + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: onImgSuccess,
failure: function (response) {
alert(response.d);
}
});
function onImgSuccess(data) {
$.map(data.d, function (listitem) {
$('<tr> <td>' + listitem.Text + '</td> <td>' + listitem.Value + ' </td> </tr>').appendTo(".tblData");
});
}
答案 1 :(得分:-2)
使用以下代码。
alert($.parseJSON(response.d));