0

グリッドにJSONデータを入力しようとしています。データは以下の形式です。

[{
  "SiteId":"1",
  "SiteName":"University of Minessota",
  "SiteStatus":"Fully Operational"
},{
  "SiteId":"2",
  "SiteName":"MSP Airport-Humphrey",
  "SiteStatus":"Settlement Required"
},{
  "SiteId":"3",
  "SiteName":"City Of Minneapolis-Lot C",
  "SiteStatus":"Fully Operational"
},{
  "SiteId":"4",
  "SiteName":"TargetCenter",
  "SiteStatus":"Low Tickets"
},{
  "SiteId":"5",
  "SiteName":"Excel Energy Center",
  "SiteStatus":"Out Of Tickets"
}]

コントローラーメソッドを使用して、これをビューに渡します。

public JsonResult StatusReport()
{
    List<CenterStatus> status = MvcList.Models.CenterStatus.GetStatus();
    return this.Json(status, JsonRequestBehavior.AllowGet);
}

私の見解では、このJSONデータをグリッドに入力する必要があります。

$(document).ready(function () {
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "CenterStatus/StatusReport.aspx",
        data: "{}",
        dataType: "json",
        success: function (data) {
            for (var i = 0; i < data.d.length; i++) {
                $("#GridView1").append("<tr><td>" + data.d[i].siteID + "</td><td>" + data.d[i].siteName + "</td><td>" + data.d[i].siteStatus + "</td></tr>");    
            }
    },
    error: function (result) {
        alert("Error");
    }
});

しかし、今のところ目標を達成することはできません。助言がありますか?

4

3 に答える 3

3

このようにしてください。appendループで呼び出さないでください。変数に設定し、関数を1回だけ呼び出しますhtml

success: function (data) {
                            var row=""
                            $.each(data,function(index,item){
                                row+="<tr><td>"+item.SiteName+"</td></tr>";
                            });
                            $("#GridView1").html(row);
                       },

作業サンプル: http: //jsfiddle.net/x76LD/1/

于 2012-07-30T16:09:54.947 に答える
1

成功関数dataの代わりに使用する必要があるかもしれません。data.d

于 2012-07-30T13:01:49.163 に答える
0

何か関係があるのurl: "CenterStatus/StatusReport.aspx",ではないかと思います。正しいURLはおそらく次のようになります。

url: "/CenterStatus/StatusReport"

于 2012-07-30T13:00:36.710 に答える