8
votes

Comment créez-vous des colonnes de table et des champs de JSON? (Grille dynamique)

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?


2 commentaires

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».


3 Réponses :


1
votes

Vous pouvez créer une définition de la grille en exécution. Regardez la méthode reconfigure : http://docs.sencha.com/ext-js/4-0/#!/api/ext.grid.panel-method-reconfigure


0 commentaires

2
votes

http: // docs .Sencha.com / ext-js / 4-1 / #! / API / ext.data.reader.json -> Section de métadonnées de réponse

Dans la grille N'oubliez pas d'ajouter celui-ci Colonnes: [], sous le magasin Soutiers: {'MetaChange': fonction (magasin, méta) {mygrid.reconfigure (magasin, méta.columns); }} et le fichier JSON de réponse doit avoir des métadonnées avec des champs et des colonnes. Lire Réponse Metadata section dans la documentation pour plus d'informations.


0 commentaires

9
votes

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> xxx pré>

Store: strong> p> xxx pré>

Voir: strong> (le Les colonnes seront définies dans chaque réponse JSON) 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"
        }
    ]
}


2 commentaires

Je ne vois pas pourquoi méthaged 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.