我有以下簽名支持AJAX的WCF服務:修改的jqGrid的POSTDATA以支持AJAX的WCF服務
[OperationContract]
[WebGet]
public JQGridContract GetJQGrid(int entityIndex)
,後面的數據合同:
[DataContract]
public class JQGridContract
{
[DataContract]
public class Row
{
[DataMember]
public int id { get; set; }
[DataMember]
public List<string> cell { get; set; }
public Row()
{
cell = new List<string>();
}
}
[DataMember]
public int page { get; set; }
[DataMember]
public int total { get; set; }
[DataMember]
public int records { get; set; }
[DataMember]
public List<Row> rows { get; set; }
public JQGridContract()
{
rows = new List<Row>();
}
}
基本上我需要更改客戶端jqGrid的postData以將'entityIndex'發送到此服務。
我讀過如何它應該發揮作用,從我可以告訴這應該工作:
function loadGrid() {
$("#jqGrid").jqGrid({
postData: { entityIndex : function() { // modify the data posted to AJAX call here
return 6;
})
},
gridComplete: function() {
$("#jqGrid").setGridParam({ datatype: 'local' });
},
datatype: function (pdata) {
getData(pdata);
},
這裏是的getData()函數:
function getData(pdata) {
var params = new Object();
alert(pdata.entityIndex()); // this displays '6', correctly
params.entityIndex = pdata.entityIndex();
$.ajax(
{
type: "GET",
contentType: "application/json; charset=utf-8",
url: "AJAXService.svc/GetJQGrid",
data: JSON.stringify(params),
dataType: "json",
success: function (data, textStatus) {
if (textStatus == "success") {
var thegrid = $("#jqGrid")[0];
thegrid.addJSONData(data.d);
}
},
error: function (data, textStatus) {
alert('An error has occured retrieving data!');
}
});
伊夫證實以下在螢火蟲:
1)JSON PARAMS是正確的:{ 「entityIndex」:6}
2)AJAX服務返回JSON數據到網格,它只是錯誤的數據
這裏是怪異的一部分:
我登錄了「entityIndex」這就是真正的WCF操作容器內工作 - 和它的總是成爲0?
謝謝。
是在WCF側或JS側的風格問題?我很快就把它們扔在一起,試圖理解基礎知識。最終,我會希望jqGrid postData基於url的queryString中的任何內容。 – 2011-06-14 19:01:50
這些選項都不起作用。首先調用pdata.entityIndex()只返回6,而不是{「entityIndex」:6}。如果我改變它返回{「entityIndex」:6}我回到了我開始的地方。就像我說過的,我在螢火蟲中檢查了'params'選項卡,它顯示:{「entityIndex」:6}。無論WCF操作上的BodyStyle如何,傳遞給該方法的實際值始終爲0. – 2011-06-14 19:26:58
@Sean:如果您發佈演示項目的URL,我可以嘗試找出爲什麼我的建議不適合您。關於風格我只是指客戶端部分。我發現'datatype'的用法是錯誤的。看一個[老答案](http://stackoverflow.com/questions/3912008/jqgrid-does-not-populate-with-data/3914796#3914796)你可以在哪裏下載完整的[演示項目](http:///www.ok-soft-gmbh.com/jqGrid/WfcToJqGrid.zip)。實現分頁,排序和過濾你會發現[這裏](http:// stackoverflow。com/questions/5500805/asp-net-mvc-2-0-implementation-of-searching-in-jqgrid/5501644#5501644) – Oleg 2011-06-14 19:42:53