2012-03-10 8 views

答えて

2

まず、WebMethodを定義して、jqGridのデータを提供する必要があります。あなたは、サーバー側がWebMethod属性をソートし、ページングを実装する予定の場合は、少なくとも以下のパラメータ

public class TableRow { 
    public int id { get; set; } 
    public List<string> cell { get; set; } 
} 
public class JqGridData { 
    public int total { get; set; } 
    public int page { get; set; } 
    public int records { get; set; } 
    public List<TableRow> rows { get; set; } 
} 

が、他の異なるオプションがどのように1缶があるようJqGridDataクラスは、例えば定義されます

public JqGridData TestMethod (int page, int rows, string sidx, string sord) 

を持つべきですグリッドを埋めることができますが、少なくとも1つの方法を理解することが重要です。

ウェブメソッドからJSONデータを返すことは、返されたデータを手動でJSONに変換する必要はありません。データでオブジェクトを返すだけで、ASMX WebサービスはHTTPリクエストのヘッダーに基づいてオブジェクト自体をXMLまたはJSONにシリアル化します。これは、サーバーへのリクエストがHTTPヘッダのContent-Type一部にapplication/json; charset=utf-8またはapplication/jsonを持っています

、返されるデータはJSONになり、あなたが

を使用する必要があり、クライアント側では

{ 
    "d": { 
     "page": 1, 
     "total": 4, 
     "records": 4, 
     "rows": [ 
      ... 
     ] 
    } 
} 

になります

$("#list").jqGrid({ 
    url: 'MyTestWS.asmx/TestMethod', 
    datatype: 'json', 
    mtype: 'POST', 
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, 
    serializeGridData: function (postData) { 
     return JSON.stringify(postData); 
    }, 
    jsonReader: { 
     root: "d.rows", 
     page: "d.page", 
     total: "d.total", 
     records: "d.records" 
    } 
    gridview: true, 
    ... 
} 

コード例については、hereを参照してください。

更新済みHereおよびhere Visual Studioデモプロジェクトをダウンロードできます。他のデモプロジェクトへのリンクについては、the answerを参照してください。

関連する問題