如何将C#代码后面的dataTable传递给jQuery

时间:2017-11-23 12:10:16

标签: javascript c# jquery asp.net ajax

我有一个字符串作为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)未显示任何行 enter image description here

我尝试使用$.map(data, function (listitem)函数,但没有结果。

 $.map(data, function (listitem) {
    $('<tr> <td>' + listitem.CustImg + '</td> <td>' + listitem.SignImg + ' </td> </tr>').appendTo(".tblData");
 });

请帮忙。!

2 个答案:

答案 0 :(得分:0)

您的数组位于d属性中,因此您可以使用map函数,但使用的是data.d,而不只是data

然后ListItem属性为TextValue,因此您的代码应如下所示:

$.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));