2010-10-05 3 views
0

J'utilise jquery datatables serverside dans mon application MVC. Lorsque je mets un point d'arrêt à ma méthode de contrôleur "FillTable" l'exécution n'atteint que la première fois sur IE. Si je reviens et recharge la page et que les données sont différentes, la fonction n'est pas appelée. Quand j'essaye Firefox, le point de rupture est atteint sur chaque rechargement sans aucun problème. Voici mon code.sAjaxSource n'est pas exécuté dans IE

$(document).ready(function() { 
    $('.details').dataTable({ 
     "bServerSide": true, 
     "bProcessing": true, 
     "sPaginationType": "full_numbers", 
     "sAjaxSource": "../PrepareStatements/FillTable", 
     "aoColumns": [ 
      { "sTitle": "#" }, 
      { "sTitle": "Date" }, 
      { "sTitle": "Remarks" }, 
      { "sTitle": "Dr/Cr" }, 
      { "sTitle": "Amount"}] 
    }); 
}); 

Mon datatable est

<table width="100%" class="details" id="eDataTable"></table> 

Mais si je change le nombre de lignes d'affichage, cliquez sur un ou effectuer une pagination recherche cela fonctionne. Quelqu'un pourrait-il m'aider s'il vous plaît?

Répondre

2

Ok, j'ai trouvé la solution. Vous devez ajouter un POST car IE a tendance à mettre en cache les résultats de données à l'aide des requêtes GET. J'ai ajouté ce qui suit à ma fonction et ça fonctionne bien maintenant.

$(document).ready(function() { 
    $('.details').dataTable({ 
     "bServerSide": true, 
     "bProcessing": true, 
     "sPaginationType": "full_numbers", 
     "sAjaxSource": "../PrepareStatements/FillTable", 
     "fnServerData": function(sSource, aoData, fnCallback) { 
      $.ajax({ "dataType": 'json', 
       "type": "POST", 
       "url": sSource, 
       "data": aoData, 
       "success": fnCallback 
      }); 
     }, 
     "aoColumns": [ 
      { "sTitle": "#" }, 
      { "sTitle": "Date" }, 
      { "sTitle": "Remarks" }, 
      { "sTitle": "Dr/Cr" }, 
      { "sTitle": "Amount"}] 
    }); 
});