J'ai un fichier JSON et je suppose que je ne sais pas non plus sur le contenu. Je ne connais pas le modèle. Cependant, il est donné dans le fichier JSON le modèle, les données et d'autres informations sur la grille. Comment créerai les colonnes etc. de cette manière? P>
3 Réponses :
Vous pouvez créer une définition de la grille en exécution. Regardez la méthode reconfigure code>: http://docs.sencha.com/ext-js/4-0/#!/api/ext.grid.panel-method-reconfigure p>
http: // docs .Sencha.com / ext-js / 4-1 / #! / API / ext.data.reader.json -> Section de métadonnées de réponse p>
Dans la grille N'oubliez pas d'ajouter celui-ci Colonnes: [], code> sous le magasin
Soutiers: {'MetaChange': fonction (magasin, méta) {mygrid.reconfigure (magasin, méta.columns); }} code> et le fichier JSON de réponse doit avoir des métadonnées avec des champs et des colonnes. Lire Réponse Metadata em> section dans la documentation pour plus d'informations. P>
Stackoverflow est jonchée de questions très similaires à celle-ci. J'ai tout travaillé à travers eux et je n'ai pas trouvé de solution définitive. Cependant, la plupart des réponses fournies m'ont signalé dans la bonne direction. Je vais me donner le meilleur coup pour mettre toutes ces suggestions ensemble et faire cela clair pour les autres:
Modèle: STRUT> (indique uniquement 2 champs qui seront dans toutes les réponses du JSON. SERA TOUJOURS être écrasé) p> {
"success": true,
"msg": "",
"metaData": {
"fields": [
{
"name": "poller"
},
{
"name": "poll_date"
},
{
"name": "PING",
"type": "int"
},
{
"name": "SNMP",
"type": "int"
},
{
"name": "TELNET",
"type": "int"
},
{
"name": "SSH",
"type": "int"
},
{
"name": "all_passed"
}
],
"columns": [
{
"dataIndex": "poller",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "Poller"
},
{
"dataIndex": "poll_date",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "Poll Date"
},
{
"dataIndex": "PING",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "PING",
"renderer": "RenderFailedTests"
},
{
"dataIndex": "SNMP",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "SNMP",
"renderer": "RenderFailedTests"
},
{
"dataIndex": "TELNET",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "TELNET",
"renderer": "RenderFailedTests"
},
{
"dataIndex": "SSH",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "SSH",
"renderer": "RenderFailedTests"
},
{
"dataIndex": "all_passed",
"flex": 1,
"sortable": false,
"hideable": false,
"text": "All Passed",
"renderer": "RenderFailedTests"
}
]
},
"tests": [
{
"poller": "CHI",
"poll_date": "2013-03-06",
"PING": "1",
"SNMP": "0",
"TELNET": "1",
"SSH": "0",
"all_passed": "0"
},
{
"poller": "DAL",
"poll_date": "2013-03-06",
"PING": "1",
"SNMP": "0",
"TELNET": "1",
"SSH": "0",
"all_passed": "0"
},
{
"poller": "CHI",
"poll_date": "2013-03-04",
"PING": "1",
"SNMP": "0",
"TELNET": "1",
"SSH": "0",
"all_passed": "0"
},
{
"poller": "DAL",
"poll_date": "2013-03-04",
"PING": "1",
"SNMP": "0",
"TELNET": "1",
"SSH": "0",
"all_passed": "0"
},
{
"poller": "CHI",
"poll_date": "2013-03-01",
"PING": "1",
"SNMP": "0",
"TELNET": "1",
"SSH": "0",
"all_passed": "0"
}
]
}
Je ne vois pas pourquoi méthaged code> doit être appelé en vous exemple. Il semble que cela manque quelque chose.
Dans Ajax URL, nous appelons `URL: 'tests.php',` Où est-ce php.
Si vous trouvez une solution, veuillez mettre à jour cela, cela vous aidera également à moi. +1 pour la question
@Jomet, Stackoverflow.com/a/11017316/233286 Cela a fonctionné. Lisez cette section dans la documentation, c'est-à-dire «MetaData de réponse».