Quelqu'un peut-il me dire s'il vous plaît la structure XML pour les sous-éléments que jqgrid utilise. J'ai lu la documentation et cela n'explique pas clairement comment créer une arborescence avec des sous-éléments. Fondamentalement, j'ai une grille de 2 colonnes avec 3 niveaux.Jquery tree grid (jqgrid) xml structure pour les sous-postes
Répondre
de la démo: http://www.trirand.com/jqgrid35/jqgrid.html
(sous la nouvelle version 3.3-> grille d'arbre)
Il fait cet appel ajax comme message: http://www.trirand.com/jqgrid35/server.php?q=tree
Les paramètres post ressemble à:
_search: false
n_left: 1
n_level: 0
n_right: 8
nd: 1241000465087
nodeid: 1
page: 1
rows: 20
sidx
sord: asc
Qui renvoie exactement ceci:
<?xml version='1.0' encoding='utf-8'?>
<rows>
<page>1</page>
<total>1</total>
<records>1</records>
<row><cell>1</cell><cell>Cash</cell><cell>100</cell><cell>400.00</cell<cell>250.00</cell><cell>150.00</cell><cell>0</cell><cell>1</cell><cell>8</cell><cell>false</cell><cell>false</cell></row>
<row><cell>5</cell><cell>Bank's</cell><cell>200</cell><cell>1500.00</cell><cell>1000.00</cell><cell>500.00</cell><cell>0</cell><cell>9</cell><cell>14</cell><cell>false</cell><cell>false</cell></row>
<row><cell>8</cell><cell>Fixed asset</cell><cell>300</cell><cell>0.00</cell<cell>1000.00</cell><cell>-1000.00</cell><cell>0</cell><cell>15</cell><cell>16</cell><cell>true</cell><cell>false</cell></row>
</rows>
Pour chaque sous-ligne, il effectue un autre appel ajax. Le premier élément "cellule" spécifie le numéro de ligne. Quand il y a un espace avant l'identifiant de ligne suivant, il sait qu'il a des sous-éléments et mettra un expandeur pour cette ligne. Lorsque l'utilisateur sélectionne l'extension, il fait un autre appel ajax, et le suivant est retourné:
<?xml version='1.0' encoding='utf-8'?>
<rows>
<page>1</page>
<total>1</total>
<records>1</records>
<row><cell>2</cell><cell>Cash 1</cell><cell>1</cell><cell>300.00</cell><cell>200.00</cell><cell>100.00</cell><cell>1</cell><cell>2</cell><cell>5</cell><cell>false</cell><cell>false</cell></row>
<row><cell>4</cell><cell>Cash 2</cell><cell>2</cell><cell>100.00</cell><cell>50.00</cell><cell>50.00</cell><cell>1</cell><cell>6</cell><cell>7</cell><cell>true</cell><cell>false</cell></row>
</rows>
regardant la source, il spécifie les noms de colonnes, et il les attend à retourner dans l'ordre. Je suis sûr que vous pouvez écrire ceci pour ne pas vous attendre à un ordre particulier, mais c'est ainsi que le mapping est défini. C'est à peu près un clone de la façon dont les choses, ce qui est un bon moyen de suivre parce qu'ils le font bien.
jQuery("#treegrid").jqGrid({
url: 'server.php?q=tree',
treedatatype: "xml",
mtype: "POST",
colNames:["id","Account","Acc Num", "Debit", "Credit","Balance"],
colModel:[
{name:'id',index:'id', width:1,hidden:true,key:true},
{name:'name',index:'name', width:180},
{name:'num',index:'acc_num', width:80, align:"center"},
{name:'debit',index:'debit', width:80, align:"right"},
{name:'credit',index:'credit', width:80,align:"right"},
{name:'balance',index:'balance', width:80,align:"right"}
],
height:'auto',
pager : jQuery("#ptreegrid"),
imgpath: gridimgpath,
treeGrid: true,
ExpandColumn : 'name',
caption: "Treegrid example"
});
Et, pour être complet, permet d'inclure l'exemple de source de PHP (passé par tant de mal, pourrait tout aussi bien finir!):
$node = (integer)$_REQUEST["nodeid"];
// detect if here we post the data from allready loaded tree
// we can make here other checks
if($node >0) {
$n_lft = (integer)$_REQUEST["n_left"];
$n_rgt = (integer)$_REQUEST["n_right"];
$n_lvl = (integer)$_REQUEST["n_level"];
$n_lvl = $n_lvl+1;
$SQL = "SELECT account_id, name, acc_num, debit, credit, balance, level, lft, rgt FROM accounts WHERE lft > ".$n_lft." AND rgt < ".$n_rgt." AND level = ".$n_lvl." ORDER BY lft";
} else {
// initial grid
$SQL = "SELECT account_id, name, acc_num, debit, credit, balance, level, lft, rgt FROM accounts WHERE level=0 ORDER BY lft";
}
$result = mysql_query($SQL) or die("Couldn t execute query.".mysql_error());
if (stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml")) {
header("Content-type: application/xhtml+xml;charset=utf-8"); } else {
header("Content-type: text/xml;charset=utf-8");
}
$et = ">";
echo "<?xml version='1.0' encoding='utf-8'?$et\n";
echo "<rows>";
echo "<page>1</page>";
echo "<total>1</total>";
echo "<records>1</records>";
// be sure to put text data in CDATA
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
echo "<row>";
echo "<cell>". $row[account_id]."</cell>";
echo "<cell>". $row[name]."</cell>";
echo "<cell>". $row[acc_num]."</cell>";
echo "<cell>". $row[debit]."</cell>";
echo "<cell>". $row[credit]."</cell>";
echo "<cell>". $row[balance]."</cell>";
echo "<cell>". $row[level]."</cell>";
echo "<cell>". $row[lft]."</cell>";
echo "<cell>". $row[rgt]."</cell>";
if($row[rgt] == $row[lft]+1) $leaf = 'true';else $leaf='false';
echo "<cell>".$leaf."</cell>";
echo "<cell>false</cell>";
echo "</row>";
}
echo "</rows>";
- 1. Structure de table SubSonic et Tree
- 2. Jquery tree et asp.net 2.0
- 3. Php Javascript alternative pour jquery grid
- 4. Comment obtenir la structure XML avec jquery?
- 5. Impossible de charger les données XML dans jqGrid
- 6. JQuery Grid ou Loop à travers des vues partielles?
- 7. Problème d'espacement vertical JQuery jqGrid dans IE
- 8. structure XML pour un organiseur personnel
- 9. jquery pour l'analyse xml
- 10. jQuery Grid et Google Maps Problème
- 11. jqGrid avec problème ASP.NET MVC afficher les enregistrements
- 12. Comment appeler la méthode getChangedCells pour jqGrid cellEdit
- 13. valeur passe jqGrid throught URL pour ASP.NET MVC contrôleur
- 14. Jquery, xml et les variables
- 15. Structure du plugin jQuery
- 16. Tree Abstract Data Type
- 17. Validation de structure pour les fichiers binaires
- 18. Erreur jqGrid avec Ruby on Rails
- 19. jqGrid dynamic sélectionnez l'option
- 20. jqGrid editRow publication sur le serveur
- 21. jqGrid JSON ajouter des données
- 22. WPF Databinding structure XML plus complexe
- 23. Structure et génériques (dans la configuration XML)
- 24. Quadtree vs Red-Black tree pour une partie en C++?
- 25. Comment puis-je obtenir cette structure XML
- 26. Records to Tree
- 27. Glassfish JNDI Tree Lier
- 28. Structure de données pour les relations
- 29. Structure de recherche pour les messages d'erreur
- 30. Silverlight Tree view