2011-04-01 100 views
0

我已经在几天前开始在我们的项目中使用jqGrid,现在我遇到了一个我无法解决的问题。 下面是我的代码:jqGrid编辑响应404行未找到

var colModel = JSON.parse(gridResult.ColModel); 

var grid = $("#tblGrid").jqGrid({ 
    url: './WebServices/Demand.asmx/GetDemandOpenHoursTwo', 
    ajaxGridOptions: { contentType: 'application/json; charset=utf-8' }, 
    serializeGridData: function (data) { 
     return JSON.stringify(data); 
    }, 
    datatype: 'json', 
    mtype: 'POST', 
    jsonReader: { 
     root: function (obj) { return obj.d.rows; }, 
     page: function (obj) { return obj.d.page; }, 
     total: function (obj) { return obj.d.total; }, 
     records: function (obj) { return obj.d.records; } 
    }, 
    height: 148, 
    rowNum: 10, 
    rowList: [10, 20, 30], 
    colNames: gridResult.Columns, 
    colModel: colModel, 
    pager: "#gridPager", 
    viewrecords: true, 
    caption: "Öppetider", 
    hidegrid: false, 
    toolbar: [true, "top"], 
    editurl: './WebServices/Demand.ascx/SaveDemandOpenHours', 
    ajaxRowOptions: { contentType: 'application/json; charset=utf-8' }, 
    serializeRowData: function (data) { 
     return JSON.stringify(data); 
    } 
}); 

而且我有一个按钮,调用该方法saveRow:

toolbar.find('.te-save').click(function() { 
    gr = grid.getGridParam('selrow'); 
    if (gr !== null) { 
     grid.saveRow(gr, false); 
    } 
}); 

一切与数据检索到网格效果很好。但是当我调用saveRow时,我得到一个状态为404和消息NOT FOUND的响应。 我试图调试这个,因为检索工作,我改变editurl到完全相同的URL。然后在函数serializeRowData中,我操作将要发布的数据,并将其替换为与发布到检索数据的Web服务方法的数据完全相同的数据。 换句话说,当我发布一个编辑过的行时,我在检索数据时做了完全相同的请求。因此,检索正在工作,编辑不是。

我检查了萤火虫的请求,我可以看到请求实际上并不完全相同。它们在一个参数上不同。

这是工作的要求有:

Accept: application/json, text/javascript, */*; q=0.01 

以及不要求有:

Accept: */* 

在他们是相同的其他各方面。 这可能是错误吗? (它必须是这个,因为其中一个正在工作..)。

任何人都可以帮我解决我的问题吗?

回答

1

在我看来,你有一个打字错误。你应该在保存成功的情况下使用的

editurl: './WebServices/Demand.asmx/SaveDemandOpenHours' 

代替

editurl: './WebServices/Demand.ascx/SaveDemandOpenHours' 

SaveDemandOpenHours返回任何数据,因此Accept头的值是不是真的很重要。如果需要,您可以在您使用的ajaxRowOptions中添加dataType: 'json'

+0

谢谢。有时你需要的只是另一双眼睛。不幸的是,我在这个问题上花费了大量时间,却忽略了这样一个愚蠢的错误。 – John 2011-04-01 10:12:22

+0

@John:不客气!有时候打字错误真的很难找到。 – Oleg 2011-04-01 10:38:39