2015-05-05 26 views
5

ajax ve serverSide seçenekleriyle jquery datatables eklentisini kullanıyorum. Her istekte bulunan alanları documentation specifies. Orada oldukça fazla var. Ve çoğu benim kullanım durumuma gerçekten bir şey eklemiyor. İşte bir istekten sorgu dizesi parametrelerinin kısa bir alıntı.Veri sayfaları ajax isteğinde gereksiz parametreleri bastırır mı?

columns[0][data]:0 
columns[0][name]: 
columns[0][searchable]:true 
columns[0][orderable]:true 
columns[0][search][value]: 
columns[0][search][regex]:false 
columns[1][data]:1 
columns[1][name]: 
columns[1][searchable]:true 
columns[1][orderable]:true 
columns[1][search][value]: 
columns[1][search][regex]:false 

Bu, tablodaki her sütun için devam eder. Bu, 10 sütun kullanırken çok uzun bir sorgu dizesi oluşturur. Aslında, web sunucumda URL uzunluğu sınırları içine giriyorum.

Belirli özelliklerin dahil edilmesini engellemek veya boş olan veya varsayılan değeri olan özellikleri bastırmak için herhangi bir yol var mı? Belgelerin sorgu dizesinin boyutunu sınırlamak için herhangi bir açık yolu yoktur.

+0

[https://datatables.net/forums/discussion/6535/simpler-shorter-urls-for-server-side-datatables](https://datatables.net/forums/discussion/6535/ daha basit-kısa-urls-sunucu-tarafı-datatables) – markpsmith

cevap

11

Bu sorunu çözmek için iyi bir yol buldum. Datatables, istekte bulunmadan hemen önce çağrılan ajax sorgu parametrelerini değiştirmek için yerleşik bir yöntem sağlar. Bunu böyle belirtebilirsiniz. Benim durumumda, columns dizi özniteliğinin tamamını umursamıyorum, bu yüzden onu kaldırıyorum.

var options = { 
     sDom: "lftip", 
     /* set your options to suit your taste */ 
    }; 

    options.ajax = { 
     url: ajaxUrl, 
     data: function(data) { 
      // manipulate data used in ajax request prior to server call 
      delete data.columns; 
     } 
    }; 

    $el.dataTable(options); 
+0

Teşekkürler, Mister @recursive çalışır –

İlgili konular