J'ai installé la grille jquery dans un projet mvc et l'ai connectée à l'interface utilisateur jquery. La charge initiale est correcte et voir les appels à l'action dans le contrôleur et les résultats sont affichés comme prévu. Si je clique sur l'un des en-têtes pour trier - rien ne se passe et l'action n'est pas appelée dans le contrôleur. Je n'ai aucune erreur dans firebug - juste aucun événement.Les événements jqGrid ne se déclenchent pas
Ai-je raté quelque chose?
public ActionResult GetRateTypes(string sidx, string sord, int page, int rows)
{
int totalPages = 1; // we'll implement later
int pageSize = rows;
int totalRecords = 3; // implement later
var jsonData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = new[]{
new {id = 1, cell = new[] {"1", "-7", "Is this a good question?"}},
new {id = 2, cell = new[] {"2", "15", "Is this a blatant ripoff?"}},
new {id = 3, cell = new[] {"3", "23", "Why is the sky blue?"}}
}
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#list").jqGrid({
url: '/Configuration/GetRateTypes',
datatype: 'json',
mtype: 'GET',
colNames: ['Code', 'Name', 'Rate'],
colModel: [
{ name: 'Code', index: 'Code', width: 40, align: 'left' },
{ name: 'Name', index: 'Name', width: 40, align: 'left' },
{ name: 'Rate', index: 'Rate', width: 400, align: 'left'}],
pager: jQuery('#pager'),
rowNum: 1,
rowList: [5, 10, 20, 50],
sortname: 'Code',
sortorder: "desc",
viewrecords: true,
imgpath: '/css/blitzer/',
caption: 'Interest Rate Types'
});
});
</script>
Merci pour la réponse. Je sais que l'action ne fait aucun tri et l'a laissé comme ça pour la simplicité. Le problème que j'ai est que l'événement de tri ne renvoie pas à l'action. Lorsque vous cliquez sur les en-têtes de colonne, l'événement n'est pas déclenché et l'action dans le contrôleur n'est pas appelée. – Chev
@Chev: Si l'on clique sur les en-têtes de colonnes, la grille sera juste rechargée et 'GetRateTypes' sera appelée avec d'autres valeurs' sidx' et 'sord'. – Oleg
@Chev: Probablement vous avez également supprimé "pour plus de simplicité" certaines options utilisées dans jqGrid également? Par exemple, si vous utilisez 'loadonce: true', après le premier interlocuteur, le' datatype: 'json'' sera changé en 'datatype:' local'' et l'action comme le tri et la pagination se fera localement sans aucun appel de votre part composants du serveur. Vérifiez que vous postez le code que vous utilisez vraiment. De l'autre côté, le paramètre par défaut 'align: 'left'' vous pouvez supprimer de tout élément' colModel' et le paramètre obsolète 'imgpath' devrait également être supprimé car il n'est pas utilisé par jqGrid. – Oleg