Aplicațiile Web lucrează de obicei cu date în format XML. Deși datele XML sunt inițial ierarhice, este posibil să fie necesar să se utilizeze date XML în comenzile de listă, cum ar fi controalele GridView sau DropDownList. Această prezentare demonstrează modul de lucru cu datele XML ca și cum ar fi fost într-o tabelă de baze de date.
În procesul de implementare a acestui ghid pas cu pas, veți învăța:
Utilizați un control al sursei de date pentru a citi datele XML și a le utiliza în controalele de listă.
Conectați controalele GridView și DataList la datele XML.
Creați pagini cu o relație "master-detaliu" care cartografiază date XML logice.
Aplicați conversia în fișierele XML, astfel încât fișierul să poată fi folosit ca date tabulare.
Pentru a face datele disponibile pentru comenzile de pe o pagină Web ASP.NET, este utilizat controlul sursei de date.
Configurarea accesului la fișiere XML
Deschideți fișierul Default.aspx și comutați la modul Design.
Din grupul de date din caseta de instrumente, trageți comanda XmlDataSource pe pagină.
În meniul XmlDataSource Tasks, faceți clic pe Configurare sursă de date.
Se deschide caseta de dialog Configurare sursă de date.
În caseta Fișier date, tastați
Faceți clic pe OK.
Controlul XmlDataSource face ca datele din fișierul XML să fie disponibile pentru comenzile care se află pe pagină. Datele sunt disponibile în două formate: ierarhice și tabulare. Controalele care sunt legate de controlul XmlDataSource. pot primi date în formatul care le corespunde.
Acum puteți afișa datele XML în controlul listei. Mai întâi, afișați o porțiune din datele XML din controlul GridView.
Afișarea de bază a datelor XML utilizând controlul GridView
Din grupul de date din bara de instrumente, trageți un element GridView pe pagină.
În lista Selectare sursă de date, din meniul GridView Tasks, selectați XmlDataSource1.
Apăsați CTRL + F5 pentru a porni pagina.
Pagina afișează datele XML din rețea.
Datele afișate în controlul GridView prezintă următoarele aspecte privind interpretarea datelor XML:
Atunci când datele XML sunt reprezentate ca înregistrări de date, în mod implicit, coloanele sunt create din atribute (cum ar fi ISBN-urile).
În prima parte a acestui ghid, comportamentul controalelor XmlDataSource și GridView în mod implicit a fost folosit pentru a extrage informații din fișierul XML. Cu toate acestea, controlul afișează numai o parte din datele XML.
Treceți la vizualizarea Design.
Din grupul de date din bara de instrumente, trageți comanda GridView pe pagină și plasați-o sub primul control GridView.
Se afișează meniul GridView Tasks (Activități GridView).
În fereastra Selectare sursă de date, selectați Noua sursă de date.
Se pornește Expertul de configurare a sursei de date.
Selectați fișierul XML ca sursă de date.
În câmpul Specificați ID pentru câmpul de date, lăsați valoarea implicită - XmlDataSource2.
Faceți clic pe OK.
Se afișează caseta de dialog Configurare sursă de date.
În caseta Fișier date, tastați
Același fișier XML va fi folosit ca în ghidul pas cu pas anterior, dar alte date vor fi extrase din al doilea control GridView.
În caseta Exprimare XPath, introduceți următoarea expresie:
Mai târziu, puteți modifica proprietatea XPath din cod dinamic. Cu toate acestea, setarea expresiei XPath pentru sursa de date deja la acest punct permite instrumentelor Visual Web Designer să determine ce informații vor fi afișate în final în control.
Faceți clic pe OK.
Selectați controlul GridView2 și setați proprietatea Visible în fereastra Properties la False.
Al doilea control GridView va fi afișat numai când utilizatorul selectează cartea în primul control GridView.
Setarea comenzii GridView pentru a selecta
Treceți la modul Design și selectați primul control GridView.
În meniul GridView Tasks, faceți clic pe Permiteți selectarea.
O nouă coloană este adăugată la controlul GridView, care conține un buton de legătură cu textul Selectare.
În fereastra Proprietăți, setați proprietatea DataKeyNames la ISBN.
Câmpul proprietății poate fi apăsat pentru a selecta o valoare.
În acest caz, controlul GridView va trata proprietatea ISBN ca cheie primară pentru toate elementele din datele XML.
Faceți clic pe controlul GridView. În lista derulantă din partea de sus a ferestrei Proprietăți, selectați Evenimente. Sunt afișate toate evenimentele asociate cu controlul.
Faceți dublu clic pe câmpul de evenimente SelectedIndexChanged.
Adăugați codul de mai jos la dispozitivul de tratare a evenimentului.
Acest cod are următoarele:
Utilizează proprietatea SelectedIndex (deținută de controlul GridView) pentru a indexa matricea de date și apoi returnează cheia primară a rândului selectat. Anterior, proprietatea DataKeyNames a fost configurată să conțină coduri ISBN.
Creează o nouă expresie XPath care conține codul ISBN selectat.
Oferă o nouă expresie XPath proprietății XPath (deținută de controlul XmlDataSource2). Adăugarea unei noi expresii XPath la proprietatea XPath are ca rezultat extragerea datelor returnate de controlul XmlDataSource. La rândul său, elementul de control GridView este asociat recent cu datele.
Proprietatea Visible este setată la true. care are ca rezultat afișarea celui de-al doilea control GridView. Când a fost creat cel de-al doilea control GridView, proprietatea de vizibilitate a fost declarată declarată false. astfel încât să nu apară înainte ca utilizatorul să selecteze cartea.
Acum puteți testa pagina.
Testarea filtrării cu expresia XPath
În pagină este afișată o rețea cu informații despre cărți.
Faceți clic pe butonul Selectare de lângă prima carte.
Faceți clic pe butonul Selectare de lângă ultima carte.
Fișierul XML care a fost utilizat în acest ghid este structurat astfel încât proprietățile fiecărui element să fie exprimate sub formă de atribute. În multe cazuri, fișierele XML cu care lucrează utilizatorul sunt structurate diferit. De exemplu, valorile dintr-un fișier XML sunt adesea create ca elemente cu text intern.
Dacă lucrați cu un fișier XML în care valorile proprietății sunt exprimate într-un alt format decât atributele, puteți crea un fișier de transformare (XSLT) care poate reforma dinamic fișierul XML astfel încât să devină compatibil cu controlul XmlDataSource.
Această parte a walkthrough-ului va folosi un fișier XML care conține aceleași date ca și fișierul Bookstore.xml care a fost folosit anterior. Cu toate acestea, datele vor fi structurate diferit decât în fișierul Bookstore.xml, deci va trebui să le convertiți pentru a le reformata dinamic.
Mai întâi trebuie să creați un al doilea fișier XML.
Creați un al doilea fișier XML
În Solution Explorer, faceți clic cu butonul din dreapta pe folderul App_Data, apoi faceți clic pe Adăugare element nou.
În secțiunea Șabloane instalate Visual Studio, selectați fișierul XML.
În câmpul Nume, tastați Bookstore2.xml.
Faceți clic pe butonul Adăugați.
Va fi creat un nou fișier XML care conține numai directiva XML.
Copiați următoarele date XML și inserați-le într-un fișier în partea de sus a conținutului acolo.
Salvați și închideți fișierul Bookstore2.xsl.
De acum înainte, lucrul cu datele XML este foarte asemănător celui care a fost efectuat mai devreme în acest manual, cu excepția faptului că atunci când configurați controlul XmlDataSource, puteți specifica un fișier de conversie. În ultima parte a acestui ghid, va fi creată o nouă pagină, după care o serie de pași vor fi repetate din prima parte a manualului. Cu toate acestea, de data aceasta, vor fi afișate datele din fișierul Bookstore2.xml.
Configurarea accesului la fișiere XML
În Solution Explorer, faceți clic cu butonul din dreapta pe numele site-ului web, apoi faceți clic pe Adăugare element nou.
Sub Șabloane Visual Studio instalate, faceți clic pe Formular Web.
În câmpul Nume, tastați Bookstore2.aspx.
Faceți clic pe butonul Adăugați.
Treceți la vizualizarea Design.
Din grupul de date din caseta de instrumente, trageți comanda XmlDataSource pe pagină.
În meniul XmlDataSource Tasks, faceți clic pe Configurare sursă de date.
Se afișează caseta de dialog Configurare sursă de date.
În caseta Fișier date, tastați
În caseta Conversion File, tastați
Faceți clic pe OK.
Din grupul de date din bara de instrumente, trageți un element GridView pe pagină.
În lista Selectare sursă de date, din meniul GridView Tasks, selectați XmlDataSource1.
Apăsați CTRL + F5 pentru a porni pagina.
Pagina afișează datele XML din rețea. Datele vor fi afișate în grilă în același mod ca și pe prima pagină, deși formatul de fișier XML care stă la baza acestui moment este diferit.
În acest ghid, sunt discutate numai principiile de lucru cu documente XML și transformări. O aplicație reală necesită adesea o lucrare mai aprofundată cu documentele XML. Vă recomandăm să citiți următoarele întrebări suplimentare:
Crearea unor transformări mai complexe. În acest ghid, a fost prezentat doar un exemplu de utilizare a transformărilor. XSL este un limbaj puternic care conține instrumente de suport avansate, nu numai pentru crearea de pagini HTML, ci și pentru transformări aproape arbitrare din XML în alte structuri.