Généralement, l'ensemble de résultats que nous interrogeons à partir de la base de données peut être très volumineux, donc lors du retour du serveur au client, les données seront divisées en plusieurs pages pour être livrées respectivement. À ce stade, vous pouvez utiliser l'attribut DATAPAGESIZE dans l'élément TABLE pour spécifier le nombre d'entrées de jeu d'enregistrements que contient chaque page.
Par exemple :
<TABLE DATASRC=“#xmldso” DATAPAGESIZE=10>
Évidemment, si le format de données XML est symétrique, l'effet sera très bon, qu'il soit mappé à un jeu d'enregistrements ADO ou lié à une table. élément bon. Dans les applications pratiques, il existe de nombreux exemples de données XML asymétriques. Par exemple, un livre peut avoir plusieurs auteurs, ce qui entraînera certains problèmes de mappage et de liaison. La solution au problème consiste à utiliser l’imbrication. Chaque ligne du tableau correspond toujours à un élément principal, et chaque colonne correspond également à un sous-élément. Pour les éléments répétés, utilisez des tableaux imbriqués. Supposons que dans books.xml, l'auteur du premier livre est Dean Straight et que les auteurs du deuxième livre sont Charlotte Cooper, Shelley Burke et Regina Murphy. À ce stade, le processus de liaison est le suivant :
● Créez un élément TABLE et attribuez l'ID de l'îlot de données à l'attribut DATAFLD
● Pour les éléments XML individuels, tels que
● Pour les éléments répétés, imbriquez un tableau à l'intérieur de l'élément TD
● Afficher les informations sur l'auteur dans une seule ligne et une seule colonne ; .
Notez que l'attribut DATAFLD ici doit être défini sur "$TEXT",
pour garantir que le contenu de l'élément imbriqué est tous affiché dans l'élément spécifié.
Le code HTML complet est le suivant :
<TABLE BORDER=1 DATASRC=“#xmldso”> <THEAD><TR><TH>Title</TH> <TH>ISBN</TH> <TH>Author</TH></TR></THEAD> <TBODY> <TR><TD> <p DATAFLD=“title”></p></TD> <TD><p DATAFLD=“isbn”> </p></TD> <TD> <TABLE BORDER=0 DATASRC=“#xmldso” DATAFLD=“author”> <TR><TD><SPAN DATAFLD=“$Text”></SPAN></TD></TR> </TABLE> </TD> </TR></TBODY> </TABLE>
En fait, la meilleure situation lors de l'utilisation de DSO est pour les données à structure symétrique, et A Un moyen plus efficace de gérer les données asymétriques consiste à utiliser la technologie DOM que nous présenterons plus tard.
Application de la technologie DSO
1. Accéder aux attributs d'un élément
Utiliser DSO pour accéder aux attributs d'un élément est très simple Vous pouvez directement gérer les attributs en tant que sous-éléments.
Par exemple :
<book isbn=“9-001-122-12”> …… </book>
De cette façon, lors de la liaison à un tableau HTML, il peut être traité directement par sous-élément :
<TD><SPAN DATAFLD=“isbn”> </SPAN></TD>
Si le nom de l'attribut et le nom du sous-élément sont identiques, ajoutez "!" devant le nom de l'élément pour les distinguer. 2. Parcours du jeu d'enregistrements
L'un des grands avantages du traitement DSO des îlots de données XML en tant que jeux d'enregistrements ADO est que vous pouvez utiliser diverses méthodes fournies par ADO pour accéder à la source de données, en particulier lorsque l'îlot de données est combiné avec quelque chose. comme SPAN, p Lors de la liaison avec des éléments HTML tels que INPUT. Généralement, ces éléments affichent le premier enregistrement du jeu d'enregistrements. Pour parcourir et parcourir le jeu d'enregistrements, vous pouvez utiliser les méthodes ADO : Move, MoveFirst, MoveLast, MoveNext et MovePRevious. Par exemple, si vous créez une fonction de réponse par bouton, tant que l'utilisateur clique sur le bouton « Suivant », les enregistrements correspondants peuvent être parcourus un par un.
Par exemple :
<XML ID=“xmldso” SRC=“books.xml”> </XML> Sub btnNext_onclick() xmldso.RecordSet.MoveNext End Sub
3. Combinaison avec le langage de script
Certains utilisateurs sont plus habitués à écrire en langage de script. La technologie DSO peut également être bien combinée avec divers scripts.
Par exemple (en prenant VB Script comme exemple), lors de l'accès au jeu d'enregistrements, le code est le suivant :
Dim rsBooks Set rsBooks = xmldso.RecordSet 访问字段(子元素)的值: Dim sTitle sTitle = rsBooks(“title”)
Vous pouvez utiliser le innerText et Attributs innerHTML pour transmettre la valeur obtenue à l'élément HTML. Par exemple, il existe un élément p nommé pTitle, et le code d'affectation est le suivant :
pTitle.innerTEXT = sTitle
Les scripts peuvent également gérer de nombreux événements DSO. Le tableau suivant en répertorie certains :
La façon de gérer divers événements dans un script consiste à utiliser l'attribut FOR dans la balise