6 messaggi dal 04 settembre 2016
Salve a tutti.

Vi spiego brevemente quello che voglio realizzare. Intendo creare in una pagina dedicata un grafico genealogico come quello sviluppato qui:

http://fperucic.github.io/treant-js/examples/custom-colored

I dati delle varie caselline deveno provenire però da un database. Se si analizza il sorgente della pagina in questione, si nota che i dati delle caselle vengono prelevati dal file "custom-colored.js. Questo sembra essere formattato come un file JSON, ma potrei sbagliarmi ovviamente. Vorrei implementare questo in un mio progetto. Prelevare dei dati dal DB e in base ad una serie di combinzioni collegare una casella alla sua casella madre.

Come potrei iniziare?

Grazie.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


essere formattato come un file JSON, ma potrei sbagliarmi ovviamente

Non è propriamente JSON ma ci siamo vicini: è un file .js che contiene delle istruzioni e degli oggetti javascript.
La differenza è che nel JSON per esempio sei obbligato a racchiudere i nomi delle proprietà nei doppi apici e che non esistono istruzioni, come l'assegnazione che vedi in questo codice javascript:
ceo = {
        text: {
            name: "Mark Hill",
            title: "Chief executive officer",
            contact: "Tel: 01 213 123 134",
        },
        image: "../headshots/2.jpg"
    }


In JSON, il carattere uguale (=) denota un'assegnazione a variabile e non esiste. Il meglio che puoi fare è questo:
{
  "ceo": {
    "text": {
      "name": "Mark Hill",
      "title": "Chief executive office",
      "contact": "Tel: 01 213 123 134"
    },
    "image": "../headshots/2.jpg"
  }
}


Comunque, produrre il json non è la questione che dovrebbe preoccuparti. Quello lo generi con una libreria tipo JSON.NET a partire da una struttura gerarchica che dovresti crearti lato server, con C# o VB.NET.

La difficoltà sta nel fatto che, nel tuo database, quasi sicuramente il tuo albero si trova in una tabella, espresso come una serie di righe in cui ciascuna ha un riferimento alla riga genitore della tabella stessa.

Si chiama "self referencing table", conferma se è questo il tuo caso oppure no. Se è questo il caso, dovrai estrarre le righe e creare una struttura gerarchica in memoria, che è quella che poi rappresenterai in JSON.
Puoi decidere di farlo con un algoritmo ricorsivo oppure usando una query Common table expression di Sql Server (ammesso che tu stia usando Sql Server).

Qui abbiamo esplorato quest'ultima possibilità. Ti linko la conversazione che è solo marginalmente inerente al tuo caso. Comunque ti consiglio di leggerla attentamente (ci vorrà un po' di tempo) e carpirne qualche tecnica utile anche nel tuo caso.
http://forum.aspitalia.com/forum/post/393011/Menu-ListView-Nidificati.aspx?PageIndex=1
La parte che forse ti interessa di più comincia a pagina 2. Lì troverai degli esempi di query.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.