私はASMXのWebサービスのC#でjqGridをバインドする方法でいくつかの助けを必要としてください、私はJSONにASMXのWebサービスを変換する方法でいくつかのトピックを見つけましたが、それは私ASMXのWebサービスのC#でjqGridをバインドする方法を
よろしく
ではっきりしていません私はASMXのWebサービスのC#でjqGridをバインドする方法でいくつかの助けを必要としてください、私はJSONにASMXのWebサービスを変換する方法でいくつかのトピックを見つけましたが、それは私ASMXのWebサービスのC#でjqGridをバインドする方法を
よろしく
ではっきりしていませんまず、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を参照してください。