この素晴らしいjqgridプラグインと、WCF Data Services(実際はそうではありませんが、非常によく似たodata4jサービス)と一緒に使用しようとする私は少し問題があります。 ところで、誰かがodataサービスでjqgridを使用することを考えているなら、私にラインを送ってください。たとえば、グリッドxmlreaderを設定してjdata xml構造体を読み込んでjquery名前空間検索を破るような難しい質問に答えました。問題( ヒント:WCFデータサービス(OData)を使用したJQGrid。 loadBeforeSendは編集モードでは呼び出されません。 Can not do setRequestHeader
がjquery.xmlns.js
.....
$.xmlns.m = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
$.xmlns.d = "http://schemas.microsoft.com/ado/2007/08/dataservices";
.....
var feedXmlReaderOptions = {
root: "feed",
row: "entry",
repeatitems: false,
id: "feed>entry>id"
};
....
colModel: [
{
name: "clmNumKey",
index: "clmNumKey",
width: 150,
xmlmap: "d|clmNum",
editable: true
}
....
)
を含めるには、とにかく、問題はODATAサービスは上のカスタムリクエストヘッダとして送信する編集操作を(DELETE、PUT、MERGE)対処方法が必要だということです通常のPOSTではなく、HTTPメソッドであることを示しています。その理由は、ほとんどのファイアウォールではPUTとDELETEを許可しないそれは有効なパスを推測できる場合に備えて、例えばファイルを削除するだけでなく、サーバー上に新しいファイルを置くことができるからです。 短いストーリー... loadBeforeSendイベントはインラインまたはフォームの編集ではトリガされません...グリッドの完全なデータリクエストでトリガされているのがわかりますが、編集からサブミットするとserializeEditData
イベントが発生します形。 jqgridソースファイル(grid.formedit.js
、grid.inlineedit.js
)に入ってしまってbeforesendキーワードでヒットを得ることができず、serializeeditdataだけがそこに表示されているため心配です。 何か不足していますか? グリッドが使用するxhr
ajaxオブジェクトに必要なヘッダを設定する別の方法はありますか?そのグリッドによってxhr
オブジェクトが公開されていますか?
あなたは、私は再び...編集イベントを処理する必要があり、コードを持っているの下に、loadBeforeSendがトリガされない...、 セルバン
$.extend($.jgrid.edit, {
closeAfterEdit: true,
closeAfterAdd: true,
ajaxEditOptions: {
contentType: "application/json"
},
mtype: 'POST',
loadBeforeSend: function(xhr)
{
xhr.setRequestHeader("X-HTTP-Method", "MERGE");
return xhr;
},
serializeEditData: function (data) {
delete data.oper;
return JSON.stringify(data);
}
});
オレグは、あなたがバディをロック!それはうまくいって、今私は私の欲しいところに私のリクエストヘッダを持っています。再度、感謝します。 – nenea
@ user1352052:ようこそ!問題が解決した場合、回答を受け入れることができます(http://meta.stackexchange.com/a/5235/147495)。ご多幸を祈る! – Oleg