2015-03-04 18 views
5

aşağıda benim sorunum bakmak Lütfen datatables. Sadece 8 sütun görüntülediğimde, her şey iyi çalışıyor. Ama 1 tane daha sütun ile ajax-hata mesajını alıyorum, başlığa bakın.jquery Ajax Hata/http://datatables.net/tn/7

Denetleyici, 8 sütun düzgün çalıştığı için iyi durumda. İşte görmek benim kod:

<script type="text/javascript"> 
    $(document).ready(function() { 
     var table = $('#example').DataTable({ 
      "processing": true, 
      "serverSide": true, 
      "ajax": "@Url.Action("List", "DFS_Akustik")", 
      "columns": [ 
       { "data": "ID" }, 
       { "data": "MessID" }, 
       { "data": "KL_ID" }, 
       { "data": "MP_ID" }, 
       { "data": "LwLin50ss" }, 
       { "data": "LwLin63ss" }, 
       { "data": "LwLin80ss" }, 
       { "data": "LwLin100ss" }, 
       //{ "data": "LwLin125ss" }, 
      ], 
     }); 
    }); 
</script> 

Yapabilirsin, son sütun daha sonra, aktif olmadığını:

http://ziehl-abegg.com/files/work.jpg

i ardından son sütunun // DELTE Ne zaman:

Nasıl bu sorunu çözebilir http://ziehl-abegg.com/files/work_not.jpg ?? Lütfen bana yardım edin ... Bütün gün Pazartesi'den beri bir çözüm buluyorum !!

Teşekkür ederiz.

Selamlamak Vegeta_77

+0

? İkinci resminizdeki hata mesajı [tam olarak neyin yanlış olduğunu nasıl anlayacağınızı söyler.] (Http: // datatables).net/manual/tech-notes/7) –

+0

Ayrıca, “ajax” ın ne anlama geldiğini öğrenebilirsiniz: "@ Url.Action (" Liste "," DFS_Akustik ")" 'tarayıcıda olduğu gibi işlenir? –

+0

HTML'yi göster lütfen. –

cevap

5

Anladım, arkadaşlarım !!!!!!!!!!!!!!!!!!!!!!!

$(document).ready(function() { 
    $('#example').dataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": { 
      "url": "scripts/post.php", 
      "type": "POST" 
     }, 
     "columns": [ 
      { "data": "first_name" }, 
      { "data": "last_name" }, 
      { "data": "position" }, 
      { "data": "office" }, 
      { "data": "start_date" }, 
      { "data": "salary" } 
     ] 
    }); 
}); 

sadece "ajax" düzenlemek zorunda kaldı: Çok GÜZEL :-) Burada

Çözüm olduğunu. "Type" "POST" kullandığınızda, o zaman çalışır.

Çok teşekkür ederim. Sunucu dönüşü yaptığı hangi hata

Selamlamak Vegeta_77

+0

Tam olarak aynı sorun vardı. Bu sorunun neden giderildiğine dair bir fikriniz var mı? – DaveF

+1

Bu soruna da girdik. Anlayabildiğim kadarıyla, oluşturulan geri çağrı GET istekleri için 2048 karakter sınırını aşmaktadır. Bu, standart başına zor bir sınır değildir, ancak çoğu web sunucusu bunu zorlar. – vaFyreHeart

+0

Mükemmel .. :) çok zaman kurtardın. Küçük sorunları çözdüğümde bu duyguyu hep sevirim. –

0

Günaydın. İşte HTML/tablo başlık:

<div style="width: auto; height: 750px; overflow-x: auto; overflow-y: auto;"> 
     <table id="example" class="table display" cellspacing="0"> 
      <thead> 
       <tr> 
        <th>ID</th> 
        <th>MessID</th> 
        <th>KL_ID</th> 
        <th>MP_ID</th> 
        <th>LwLin50ss</th> 
        <th>LwLin63ss</th> 
        <th>LwLin80ss</th> 
        <th>LwLin100ss</th> 
        @*<th>LwLin125ss</th>*@ 
       </tr> 
      </thead> 
     </table> 
    </div> 

sunucu tarafında sonucu iyidir, bak:

http://ziehl-abegg.com/files/ServerSide.jpg

@Sippy. İkinci sorumu anlamıyorum.

İsimlerin hepsi doğru, üçüncü resme/bağlantıya bakın. Burada denetleyicisinden Methode "listesi" dir:

halka JsonResult Listesi ([ModelBinder (typeof (DataTablesBinder))] IDataTablesRequest requestModel) { listesi myOriginalDataSet = dbman.View_DFS_Akustik.ToList(); myFilteredData = dbman.Set(). FullTextSearch (requestModel.Search.Value) .ToList();

//Apply filter to your dataset based only on the columns that actually have a search value. 
foreach (var column in requestModel.Columns.GetFilteredColumns()) 
{ 
    string query = column.Data + ".Contains(\"" + column.Search.Value + "\")"; 
    myFilteredData = myFilteredData.Where(query).ToList(); 
} 

//Set your dataset on the same order as requested from client-side either directly on your SQL code or easily 
//into any type or enumeration. 
bool isSorted = false; 
foreach (var column in requestModel.Columns.GetSortedColumns()) 
{ 
    if (!isSorted) 
    { 
     // Apply first sort. 
     if (column.SortDirection == Column.OrderDirection.Ascendant) 
      myFilteredData = myFilteredData.OrderBy(column.Data).ToList(); 
     else 
      myFilteredData = myFilteredData.OrderBy(column.Data + " descending").ToList(); 

     isSorted = true; 
    } 
    else 
    { 
     if (column.SortDirection == Column.OrderDirection.Ascendant) 
      myFilteredData = myFilteredData.OrderBy(column.Data).ToList(); 
     else 
      myFilteredData = myFilteredData.OrderBy(column.Data + " descending").ToList(); 
    } 
} 

var paged = myFilteredData.Skip(requestModel.Start).Take(requestModel.Length); 
return Json(new DataTablesResponse(requestModel.Draw, paged, myFilteredData.Count(), myOriginalDataSet.Count()), JsonRequestBehavior.AllowGet); 

}

THX. Vegeta_77