aşağıdaki gibidir::
$.ajax($.extend({
url: ts.p.url,
type: ts.p.mtype,
dataType: dt,
data: $.isFunction(ts.p.serializeGridData) ?
ts.p.serializeGridData.call(ts, ts.p.postData) : ts.p.postData,
complete: function (req, st) {
...
}
...
}, $.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
İşte
ızgara seçeneği ayarları
$.ajax
isteğinin herhangi bir parametresini ayarlamak veya geçersiz kılmak için ajaxGridOptions
jqGrid seçeneğini kullanabilirsiniz. Benim sunucuya yalnızca JSON istekleri kullandığından, ben grid.inlinedit.js satır düzenleme için kullanılan
$.extend($.jgrid.defaults, {
datatype: 'json',
{ajaxGridOptions: { contentType: "application/json" },
{ajaxRowOptions: { contentType: "application/json", type: "PUT" },
...
});
ajaxRowOptions
gibi contentType
genel ayarını ayarlayın. Form düzenlemek için ben küresel ayarı olarak da belirlenen diğer parametreleri vardır:
benim sunucu (WFC ağırlıklı geliştirilmiş ve ASP.NET MVC geri kalanı) bir RESTfull hizmetidir nasıl görebilirsiniz
$.extend($.jgrid.edit, {
ajaxEditOptions: { contentType: "application/json" },
...
});
$.extend($.jgrid.del, {
ajaxDelOptions: { contentType: "application/json" },
mtype: "DELETE",
...
});
. $.jgrid.edit
, "add" ve "modify" öğelerinin ikisi için bir ayar olduğundan, yalnızca "edit" için değiştiremedim, bu yüzden navGrid()
parametrelerinde bunu yapıyorum.
Ayarlamak için ilginç bulabileceğiniz son ajax parametresi ajaxSelectOptions
'dur. ajaxGridOptions
ile aynı şekilde ayarlayabilirsiniz.veya searchoptions
'un içinde dataUrl
parametresini kullanırsanız ajaxSelectOptions
parametreleri kullanışlıdır. edittype: 'select'
türünde sütunları tanımlamak için colModel
'un içinde dataUrl
kullanın. Seçme seçeneğinin olası değerleri, satır içi veya form düzenleme veya arama iletişim kutusunun için sunucudan yüklenecektir. Bu tür veri yüklemeleri için ajax kullanıldığı için, karşılık gelen ajaxSelectOptions
seçeneği vardır.
Saygılarımızla.
Teşekkürler Oleg!Bu yaptı; Örnek kodumu soruya ekledim. – Nigel
Çok garip! Ayrıca jqGrid 3.6.4 kullanıyorum. JQuery 1.4.2 kullanıyorum çünkü http://github.com/tonytomov/jqGrid adresinden sürümü kullanmam gerekiyor, ancak ajax özellikleri 3.6'dan başlıyor (3.6.0). Doğrulamak için jqGrid sürümünüzde ajaxGridOptions'ı arayabilirsiniz. JqGrid'in son sıkıştırılmamış sürümünü http://github.com/tonytomov/jqGrid adresinden yüklemenizi, bu js dosyalarını (örneğin grid.loader.js) kullanabilmeniz için kodu değiştirmenizi, grid.base.js içinde kesme noktaları belirlemenizi öneririm (.ajax'ı arayın) ve jQuery.ajax'ın (ayrıca sıkıştırılmamış jquery-1.4.2.js) içini arayın. Ayrıca $ .jgrid.default değerini ayarlayarak bir test de yapabilirsiniz. – Oleg
Tebrikler! İyi bir problem çözülmüş bir problem! – Oleg