2011-05-06 9 views
1

J'ai un problème lorsque je veux charger une page contenant du code dojo. La page chargée n'affiche aucune information.Problème DataGrid Jquery et Dojo

Mon index.html qui charge la page, ressemble à ce que:

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parseOnLoad: true"> 
//to fill 
</script> 
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css"/> 
    </head> 
    <body> 
    <div id="mainFrame"> 
<script type="text/javascript" > 
$('#mainFrame').load('/Page.html'); 
</script> 
</div> 
    </body> 
    <html> 

Ma deuxième page contient le code pour afficher une grille de données: Pahe.html

<html> 
    <head> 
    <link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/resources/claroGrid.css'/> 
     <script type="text/javascript" > 
     dojo.require("dojox.grid.DataGrid"); 
     dojo.require("dojo.data.ItemFileReadStore"); 
     function prepare() { 
      var data0 =[{FristName:'jean',LastName:'edu',Course:'english'}]; 
      var store0 = new dojo.data.ItemFileReadStore({ 
      data: { 
      items: data0 
      } 
      }); 
      var grid0 = new dojox.grid.DataGrid({ 
      store: store0, 
      structure: [ 
      {field: 'FirstName', name: 'FirstName', width:'auto'}, 
      {field: 'LastName', name: 'LastName', width:'auto'}, 
      {field: 'Course', name: 'Course', width:'auto'} 
      ], 
      rowsPerPage: 20, 
      clientSort : true, 
      rowSelector : '10px' 
      }, "grid0"); 
      grid0.startup(); 
     } 
     dojo.addOnLoad(prepare); 
    </script> 
    </head> 
    <body> 
    <div id="grid0"/> 
    </body> 
    </html> 

Quand je lance ce code dans un navigateur, je vois Nohting. Cependant, je vois avec l'outil de recherche google chrome que le navigateur charge le dataGrid de dojo ...

Je pense que c'est un problème avec la charge de jquery parce que si j'ajoute le code pour charger le script de dojo dans la page .html ', je suis capable de voir quelque chose ... J'invite que quelque chose ne va pas avec jquery et dojo ...

Pourriez-vous m'aider à résoudre ce problème?

Merci à l'avance,

chauve-souris

Répondre

0

Il suffit de penser à haute voix ici peut-être, mais vous appelez $ ('# mainFrame') en ligne dans le document au-dessus du "mainframe" correspondant div. Ça marchera? Je pense que l'appel js doit être sous le div "mainframe" dans le document.

Je voudrais essayer de déplacer cet appel hors de la "tête" et le mettre en ligne dans le corps quelque part après la division "mainframe".

+0

Je change le code (édité sur mon fil). Mais j'ai toujours le problème. – user376112

0

Je suis allé chercher l'API docs pour la charge de JQuery, mais il apporte une page vide :-)

Je ne sais pas exactement ce qu'il fait, en particulier avec les éléments de la tête, mais si elle est tout simplement faire quelque chose comme une affectation innerHTML, qui ne fonctionnera pas avec le chargeur de code de Dojo ou le chargement inter-domaines CDN en cours. Le code Dojo que vous avez probablement prévu d'être exécuté au moment du chargement de la page.

0

2 suggestions:

1- Vous pourriez avoir besoin de la grille "base" CSS importée pour la grille de dojo.

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/grid/resources/Grid.css"> 

2- Vous pourriez aussi avoir besoin de définir une hauteur sur la grille de données (en pixels ... pourcentages ne fonctionnent pas avec la grille de données).