ne peux pas ajouter une ligne au sommet d'une table jqGrid en utilisant la ligne:jqGrid « addRowData » à « premier » ne je travaille
jQuery("#myTable").jqGrid('addRowData', 0, myData, "first");
Il ajoute juste au bas de la liste, comme d'habitude
Est-ce que quelqu'un a essayé cela et travaille pour eux?
Dans ma table, les lignes précédemment ajoutés ont l'index qui va de 0 à N
J'utilise jqGrid v3.8.1 et jQuery 1.4.3
<html>
<head>
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.8.5.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<script src="js/jquery-1.4.3.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.5.custom.min.js" type="text/javascript"></script>
</head>
<script type="text/javascript">
$(document).ready (function(){
jQuery("#myTable").jqGrid({
datatype: "local",
colNames:['Data ID','Device'
],
colModel:[
{name:'DATA_ID',index:'DATA_ID', sorttype:"int", width:22, align:"center", sortable:false},
{name:'DATA_DN',index:'DATA_DN', width:60, align:"center", sortable:false},
],
width: "1216",
});
var myData = [{"DATA_ID":"9", "DATA_DN": "sony"}, {"DATA_ID":"10", "DATA_DN": "panasonic"}];
var newData = [{"DATA_ID":"0", "DATA_DN": "national"}, {"DATA_ID":"1", "DATA_DN": "samsung"}];
for(var i=0;i<myData.length;i++)
{
jQuery("#myTable").jqGrid('addRowData', i, myData[i]);
}
jQuery("#myTable").addRowData(0, newData, "first");
//jQuery("#myTable").trigger("reloadGrid");
});
</script>
</head>
<body>
<table id="myTable"></table>
<div id="myTable_pager"></div>
</body>
</html>
J'ai ajouté le code Oleg - passer myData comme [] ou {} n'a pas fait de différence - même si j'ai trouvé le problème - c'est l'appel à jQuery ("# myTable").trigger ("reloadGrid"); qui réordonne le tableau - donc le problème est avec cela = J'ai besoin de recharger le tableau car mon pager (pas dans ce code) doit être mis à jour avec le nombre réel d'enregistrements - la question est maintenant, comment puis-je ajouter de nouvelles éléments ET recharger la grille mais les lignes ne sont pas triées - J'ai utilisé le drapeau "sortable: false" dans le colModel ... – sami
Ou (en me parlant) Je pourrais garder un champ recieved_time et le trier sur la base de cela pour que mes derniers enregistrements restent au top, comme vous le souhaitez – sami
@sami: L'utilisation du champ recieved_time utilisé pour le tri est un bon moyen, mais il est nécessaire après 'jQuery (" # myTable "). trigger (" reloadGrid "); '. Vous pouvez ajouter la ligne à n'importe quel endroit où vous voulez avec le code que j'ai posté. – Oleg