Collegare una dropdownlist ad un file xml

martedì 24 gennaio 2012 - 17.06

trinity Profilo | Guru

Ciao raga,
scusate io ho creato un file xml con i metodi writexml da un dataset. Ora in questo fiel xml ci sono due tabelle una tipologie ed una categorie...In pratica ad ogni tipologia corrisponde un numero n di categorie...Io vorrei collegare ad 2 dropdownlist queste due tabelle e quando selezione nella prima una determinata tipologia nella seconda lista mi deve caricare solo le categorie della tipologia richiesta.
Io non sono pratico di pagine web ed aspx sto iniziando a vedere questo mondo attraverso vb net 2012...e quando carico un oggetto dropdownlist sulla pagina aspx e faccio la procedura guidata per aggiungere una sorgente dati e selzione xml..poi mi chiede il percorso del file di trasformazione xsl e la xpath...
Non so cosa sono come si creano?

Grazie e se avete qualche esempio semmai in italiano sarebbe perfetto

il file xml che ho creato l'ho allegato al post

Ciao
Cirillo Fabio
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

Gluck74 Profilo | Guru

a prima vista il tuo file XML mi pare proprio errato.
stai mischiando categorie e tipologie assieme, in un unico gruppo dati.
Hai una cassetta di pere e mele assieme, per citare le nostre maestre di scuola

domandina....
ma se hai un dataset, perché crei il file xml da agganciare alle dropdown? usa direttamente il dataset.


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

trinity Profilo | Guru

Ti spiego meglio l'arcano mistero :)

allora io ho sempre programmato in windowsapplication quindi non mi sarei creato il problema di nessun tipo...Da un periodo di tempo per carestia lavoro alcuni miei clienti mi hanno commissionato siti web molto semplici..Premettendo che non ho mai visto il mondo web attraverso vbnet 2010 lato web ovviamente ho creato alcuni sitarelli ma sempre senza database...Ora un clienti mi ha commissionato un sito dive vi è una form di richiesta preventivo...dato che non ho nessun database in quanto questo cliente mi pago poco :( ma devo accettarlo...ho pensato visto che i dati sono sempre gli stessi di creare un file xml e di utilizzarlo come sorta di archivio da cui attingere i dati e portarli nelle dropdownlist...Non essendo pratico di xml ho visto, grazie anche ad alcuni consigli, che attraverso il dataset posso creare un file xml..quindi cosa ho fatto ho aperto un progetto windowsapplication creato due tabelle in un dataset le ho relazionate in quanto come ti ho detto ad una tipologia ci devono essere n categorie e poi con il codice writexml ho scritto il file xml...Ho pensato questo lo aggiungo nella mia webapplication e poi gli associo alle dropdownlist i dati...Qui è nato il problema ossia non so come farlo appunto ho aperto un altro post dove te mi hai risposto in cui citavo linq to xml perchè in rete ho visto che dovrebbe essere molto + semplice creare e leggere xml con il linq e associarlo alle dropdownlist...

cmq per quanto riguarda i dataset come potrei agganciarli alle dropdownlist e far si che scegliendo una tipologia nella seconda lista mi appaiono solo le sue relative categorie?

un file xml giusto come dovrebbe essere?

Ora conosci il tutto ed accetto i tuoi consigli ;)

Grazie del tempo che perdi con me :)

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

Gluck74 Profilo | Guru

le applicazioni web non sono così facili come sembrano.......

Molto spesso, quando il cliente paga poco, siamo tentati di fare anche noi poco, per avere più profitto.
putroppo la scelta di non fare un DB forse è controproducente.
Per non avere un DB, ti sei dovuto fare tutto sto giro da un'applicazione tua per creare XML e poi dare XML al sito web....
ma, forse facevi prima a fare un file access o SQLCompat, non credi?
Oltre a sto giro ti dovresti pure imparare LINQ2XML (che è molto facile), meglio se usi tecniche e strumenti che già conosci quando il budget è poco.
ti risparmierà anche in fututo diverso lavoro, e visto che il cliente paga poco, meglio risparmiare sul tempo da dedicargli, che sugli strumenti da utilizzare.

Dopo questo mio parere.....

non ho usato molto XML nei miei progetti, ma se non erro, dovresti comuqne separare le cose:
<xml ... ... > <TipologiE> <tipologiA> <Id>3</Id> <Descrizione>Costruzione ex novo</Descrizione> </tipologiA> <tipologiA> <Id>3</Id> <Descrizione>Costruzione ex novo</Descrizione> </tipologiA> <tipologiA> <Id>3</Id> <Descrizione>Costruzione ex novo</Descrizione> </tipologiA> </tipologiE> <categoriE> <CategoriA> <Id>5</Id> <IdTipologia>2</IdTipologia> <Descrizione>Demolizione e ricostruzione strutture fatiscenti</Descrizione> </CategoriA> </categoriE> </xml>

Per quanto riguarda il filtro, o lo fai da javascript (esempio JQuery) o usi ajaxcontroltoolkit:
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx
http://www.asp.net/ajaxlibrary/act_CascadingDropdown.ashx

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

trinity Profilo | Guru

Sai io in partenza avevo scelto una cosa rapida come access 2010 ma mi sono fermato perchè mi da errore in quanto utilizzo un sistema a 64bit ho installato il microsoft oledbace ma niente altrimenti non passavo ad utilizzare xml.
Comunque fermo restando che sono un tipo che vuole sempre imparare ora è una questione di principio e voglio capire come funzionano lettura e scrittura i file xml e leggendo nella rete ho trovato che cn linq si possono creare file xml e poi leggerli semplicemente e attribuirli anche alle dropdownlist senza usare jquery o ajax

Ciao


Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>domandina....
>ma se hai un dataset, perché crei il file xml da agganciare alle
>dropdown? usa direttamente il dataset.
quoto, e aggiungo.. se paga poco e se sono informazioni statiche, fai una serie di classi e binda direttamente loro che sprecano pure meno risorse
Eviterei tutti i giri che fai con xml.. se ti fai una collezione in memoria (che altro non è che una static/shared class) e la bindi alle dropdown è fatta
che dite?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Gluck74 Profilo | Guru

>quoto, e aggiungo.. se paga poco e se sono informazioni statiche,
>fai una serie di classi e binda direttamente loro che sprecano
>pure meno risorse
>Eviterei tutti i giri che fai con xml.. se ti fai una collezione
>in memoria (che altro non è che una static/shared class) e la
>bindi alle dropdown è fatta
>che dite?

si, anche una soluzione con i dati direttamente nel codice, potrebbe essere molto veloce e risolutiva, ma a parer mio poco elastica.

Comunque l'idea dei file XML non è male, ma dovresti averli già pronti o avere uno strumento che te li crea velocemente e corretti.
Perché non gli dici al cliente che ti fornisca i dati lui?

A questo punto una classe, un xml, un txt, un SqlCE..... vale tutto, basta che non ti infogni troppo!!!!!

tempo fa avevo visto un intero CMS su XML..... quindi come soluzione potrebbe essere valida.

Ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

trinity Profilo | Guru

Allora il mio cliente mi ha dato i dati che vanno nelle tipologie e nelle categorie devo solo creare un contenitore che mi permetta poi di collegare alla prima dropdownlist le tipologie e poi in base a quella scelta mi faccia caricare le categorie nella seocnda dropdownlist...Nel caso di alex ossia creare una classe interne che raggruppa questi dati statici e poi li bindo all'oggetto dropdownlist come si fa?

tipo una listoff? Se si ma non saprei come poi bindarlo all'oggetto

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

Gluck74 Profilo | Guru

un esempio:
public static class DatiCliente { public DatiCliente() { Tipologie = new List<string>(); Tipologie.Add("tipo_1"); //... //... Tipologie.Add("tipo_n"); Categorie = new List<string>(); Categorie.Add("categoria_1"); //... //... Categorie.Add("categoria"); } public List<string> Tipologie { get; set; } public List<string> Categorie { get; set; } }
dropdownlist1.datasource = Daticliente.Tipologie; dropdownlist1.DataBind();

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

trinity Profilo | Guru

Cosi creo una listoff dei dati tipologia e categoria e poi bindo l'oggetto sulla lista tipologie...ma in web come faccio a dire che scelgo per esempio la tipologia "Tinteggiatura" e poi nella seconda dropdownlist mi appaiono solo le categorie della tipologia tinteggiatura...è qui che non risco a capire il modo...devo giocare con delle If?

Ciao e grazie dell'aiuto
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

Gluck74 Profilo | Guru

no,
puoi giocare sia da codice on Linq sull'evento selectedindexchanged, ma necessita di un postback
puoi giovare con javascript per nascondere gli item (jquery ad esempio)
oppure puoi usare questo:
http://www.asp.net/ajaxlibrary/act_CascadingDropdown.ashx

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5