2017-11-23 10 views
0

C#コードからjQueryにデータのテーブルとして渡す文字列があります。C#コードからjQueryの後ろにdataTableを渡す方法

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)がanythig enter image description here

を示していない。私は2つの機能を使用していますそのため

$.map(data, function (listitem)機能を使用しようとしましたが、結果はありませんでした。

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

助けてください!

+0

あなたが解決策に非常に近いです。デベロッパーコンソールのコントローラーから取得したオブジェクトを調べ、見つけます。 – Doruk

+0

@Doruk C#関数は、variale 'datas'の2行の値を持っていますが、成功関数の値を取得していないので、大丈夫です。 – Four

+0

offtopic: 'data'は複数ですが、 'datas' 'dataList'を使用することができます) –

答えて

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"); 
    }); 
} 
-2

次のコードを使用してください。

alert($.parseJSON(response.d)); 
関連する問題