国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
XML:快速表列資料-資料系結(jié)|http://www.itonline.gd.cn
XML:快速表列資料-資料系結(jié)

www.itonline.gd.cn  2003-12-17



  快速表列資料-資料系結(jié)
在上一期的文章中我們介紹了使用ADO從資料庫取出資料轉(zhuǎn)換成為XML,并利用XSL技術(shù)將之展現(xiàn)在網(wǎng)頁上。漸漸地整合各種XML應用技術(shù),在這一期將介紹透過資料系結(jié)技術(shù),輕松快速地表列資料。  
談到資料系結(jié),它到底有什么好處呢?首先第一點它使用上直覺、簡單,第二點它不需撰寫大量的程式即可達到資料展現(xiàn)的目的,第三點它維護輕松、容易修改,主要是因為資料與展現(xiàn)的HTML標簽分離。接下來就這三點來討論資料系結(jié)如何應用吧! 

資料系結(jié)
 
首先如果要使用資料系結(jié)技術(shù)來展現(xiàn)資料,必須要在網(wǎng)頁中建立XML的資料來源物件(Data Source Object),文中簡稱DSO,建立DSO的方式有兩種,第一種是使用Java Applet連結(jié)到一份Books.xml檔案資料,范例如下: 
< HTML >
< HEAD >  
< APPLET CODE="com.ms.xml.dso.XMLDSO.class" 
id="xmldso" width=0 height=0 > 
< PARAM NAME="URL" VALUE="Books.xml" >
< /APPLET >  
< /HEAD >
< BODY >

< /BODY >
< /HTML >  
JavaApplet.htm 
第二種方式是建立XML DataIsland(XML資料島),范例如下: 
< HTML > 
< HEAD >  
< xml id="xmldso" src="Books.xml" >< /xml > 
< /HEAD > 
< BODY > 

< /BODY >
< /HTML >  
XMLDataIsland1.htm 
或者直接將XML資料崁入DataIsland中,范例如下: 
< HTML >
< HEAD >  
< xml id="xmldso" > 
< ?xml version="1.0"? >
< booklist > 
< book > 
< title >The Gourmet Microwave< /title > 
< isbn >72-80081-082< /isbn >
< publisher >New Moon Books< /publisher >
< price >9.95< /price >
< details >Details.asp?isbn=72-80081-082< /details >
< author >Charlotte M. Cooper< /author >
< author >Shelley B. Burke< /author >
< author >Regina P. Murphy< /author >
< /book >
< /booklist >
< /xml >  
< /HEAD >
< BODY >

< /BODY >
< /HTML >  
XMLDataIsland2.htm 
這兩種方式都能建立DSO,不過第二種方式,也就是XML DataIsland的語法只有在IE5以后的版本才有支援,在這邊預設(shè)讀者都有IE5可以測試。建立好DSO,先看一下DSO里面的資料,也就是連結(jié)到的XML檔案Books.xml,如下列檔案內(nèi)容: 
< ?xml version="1.0"? > 
< booklist > 
< book > 
< title >The Gourmet Microwave< /title > 
< isbn >72-80081-082< /isbn >
< publisher >New Moon Books< /publisher >
< price >9.95< /price >
< details >Details.asp?isbn=72-80081-082< /details >
< author >Charlotte M. Cooper< /author >
< author >Shelley B. Burke< /author >
< author >Regina P. Murphy< /author >
< /book >
< book > 
< title >Sushi, Anyone?< /title > 
< isbn >72-80081-024< /isbn > 
< publisher >New Moon Books< /publisher > 
< price >14.99< /price >
< details >Details.asp?isbn=72-80081-024< /details >
< author >Charlotte M. Cooper< /author >
< author >Yoshi Nagase< /author >
< /book > 
< book > 
< title >The Busy Executive‘‘s Database Guide< /title >
< isbn >9-001-122-12< /isbn >
< publisher >Binnet and Hardley< /publisher > 
< price >19.95< /price >
< details >Details.asp?isbn=9-001-122-12< /details >
< author >Mayumi Ohno< /author > 
< /book > 
< book > 
< title >Cooking With Computers: Surreptitous Balance Sheet< /title >
< isbn >9-001-122-90< /isbn >
< publisher >Binnet and Hardley< /publisher > 
< price >11.95< /price > 
< details >Details.asp?isbn=9-001-122-90< /details >
< author >Mayumi Ohno< /author >
< author >Ian H. Devling< /author >
< author >Peter Wilson II< /author >
< author >Lars Peterson< /author > 
< /book > 
< book > 
< title >Straight Talk About Computers< /title > 
< isbn >9-001-122-01< /isbn > 
< publisher >Binnet and Hardley< /publisher >
< price >19.99< /price > 
< details >Details.asp?isbn=9-001-122-01< /details >
< author >Lars Peterson< /author > 
< /book > 
< /booklist > 
 
 
XML檔案中包含五本書,每本書都有一個以上的作者。接下來要如何讓HTML標簽來展現(xiàn)資料呢?其實很簡單,例如下面的范例,僅僅在標簽內(nèi)加上兩個屬性設(shè)定(datasrc與datafld),第一筆資料就能夠系結(jié)在標簽內(nèi)了: 
< HTML > 
< HEAD > 
< xml id="xmldso" src="Books.xml" > < /xml >
< /HEAD > 
< BODY > 書號:< span datasrc="#xmldso" datafld="isbn"  >< /span >< br > 
書名:< TEXTAREA rows=2 cols=20 id=textarea1 name=textarea1   datasrc="#xmldso" datafld="title" >< /TEXTAREA >< br > 
出版商:< INPUT type="button" value="Button" id=button1 name=button1   datasrc="#xmldso" datafld="publisher"  >< br > 
價格:< INPUT type="text" id=text1 name=text1  datasrc="#xmldso" datafld="price"  >  
< /BODY > 
< /HTML >  
DataIsland3.htm 
結(jié)果圖如下: 
 

  原來datasrc屬性就是指定DSO,而datafld就是指定欄位,并且個別用不同的標簽來展現(xiàn),讀者就會發(fā)現(xiàn)資料系結(jié)的彈性以及方便了。例如價格欄位資料會系結(jié)到TextBox的Value屬性,所以結(jié)果可以看到資料便展現(xiàn)在TextBox里面。 
但是有一點必須要注意,并不是所有的HTML標簽都支援這兩個屬性,在以下的表格中列出支援的HTML標簽以及資料系結(jié)后所對應的標簽屬性: 


HTML標簽 資料系結(jié)標簽屬性 
A href 
APPLET property value via PARAM  
BUTTON innerText, innerHTML  
DIV innerText, innerHTML  
FRAME src 
IFRAME src 
IMG src 
INPUT TYPE=BUTTON innerText, innerHTML 
INPUT TYPE=CHECKBOX checked 
INPUT TYPE=HIDDEN value 
INPUT TYPE=PASSWORD value 
INPUT TYPE=RADIO checked  
INPUT TYPE=TEXT value  
LABEL innerText, innerHTML 
LEGEND innerText, innerHTML 
MARQUEE innerText, innerHTML 
SELECT obj.options(obj.selectedIndex).text 
SPAN innerText, innerHTML  
TEXTAREA value  
 
如上表span標簽在設(shè)定完datasrc及dtafld之后,資料會存放在標簽的innerText或innerHTML屬性中,這代表資料能夠以TEXT純文字展現(xiàn)或以HTML展現(xiàn)。資料系結(jié)之后預設(shè)使以純文字展現(xiàn),也就是存放在innerText屬性,例如改寫B(tài)ooks.xml的第一筆資料的isbn欄位如下: 
< book >
< title >The Gourmet Microwave< /title > 
  < isbn > < B < 72-80081-082 < /B < ;< /isbn > 
< publisher >New Moon Books< /publisher > 
< price >9.95< /price >
< details >Details.asp?isbn=72-80081-082< /details >
< author >Charlotte M. Cooper< /author >
< author >Shelley B. Burke< /author > 
< author >Regina P. Murphy< /author > 
< /book >  
 
  其中‘<’代表‘< ’符號,‘&glt;’代表‘ >’符號,主要是因為XML資料中大于和小于符號是保留字,所以必須以其他方式表現(xiàn),此時再度執(zhí)行DataIsland3.htm會得到以下結(jié)果:  

  但是這不是想要的結(jié)果,主要的目的是希望書號欄位資料以粗體展現(xiàn),此時必須配合另一個HTML屬性,也就是修改DataIsland3.htm的span標簽,再加上一個屬性dataformatas設(shè)定為HTML。此時資料系結(jié)后,資料便會存放在span標簽的innerHTML屬性,也就是以HTML方式展現(xiàn),如下程式碼及結(jié)果: 
書號:< span datasrc="#xmldso" datafld="isbn"  dataformatas="HTML" >< /span >< br >  
 
 

  瀏覽資料
 
到目前為止,雖然資料系結(jié)很方便看到所需的資料,但是都只能看到第一筆,所以應該要有瀏覽的機制,也就是加上可以切換上下筆的功能。首先在頁面上放進四顆按鈕并給定按鈕文字內(nèi)容,然后加上被點選后所執(zhí)行的程式如下:  
< HTML > 
< HEAD > 
< META name=VI60_defaultClientscript content=VBscript >
< META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0" >
< TITLE >< /TITLE > 
< xml id="xmldso" src="Books.xml" >< /xml >
< script ID=clientEventHandlersVBS LANGUAGE=vbscript >
< !-- 

Sub button2_onclick   xmldso.recordset.movefirst 
End Sub

Sub button3_onclick   xmldso.recordset.moveprevious 
if xmldso.recordset.bof then 
xmldso.recordset.movefirst
end if  
End Sub

Sub button4_onclick   xmldso.recordset.movenext 
if xmldso.recordset.eof then 
xmldso.recordset.movelast 
end if  
End Sub 

Sub button5_onclick   xmldso.recordset.movelast 
End Sub

-- > 
< /script >
< /HEAD >
< BODY > 

書號:< span datasrc="#xmldso" datafld="isbn" dataformatas=HTML >< /span >< br > 
書名:< TEXTAREA rows=2 cols=20 id=textarea1 name=textarea1 datasrc="#xmldso" datafld="title" >< /TEXTAREA >< br > 
出版商:< INPUT type="button" value="Button" id=button1 name=button1 datasrc="#xmldso" datafld="publisher" >< br > 
價格:< INPUT type="text" id=text1 name=text1 datasrc="#xmldso" datafld="price" >< br >

  < INPUT type="button" value="第一筆" id=button2 name=button2 >
< INPUT type="button" value="上一筆" id=button3 name=button3 > 
< INPUT type="button" value="下一筆" id=button4 name=button4 >
< INPUT type="button" value="最后一筆" id=button5 name=button5 >  

< /BODY >
< /HTML > 
DataIsland3.htm 
上面的程式中會將XML資料模擬成RecordSet,此時就可以透過RecordSet的Method來瀏覽資料。不過如果想要同時瀏覽多筆資料又該如何?這時可以使用Table標簽來做資料系結(jié),如以下方式: 
< HTML >
< HEAD >
< TITLE >< /TITLE > 
< xml id="xmldso" src="Books.xml" >< /xml >
< /HEAD > 
< BODY > 

< TABLE WIDTH=100% BORDER=1 datasrc=#xmldso > 
< THead >
< TD >書號< /TD >< TD >書名< /TD >< TD >價格< /TD >< TD >作者< /TD >
< /THead >
< TR >
< TD >< span datafld=isbn >< /span >< /TD > 
< TD >< span datafld=title >< /span >< /TD >
< TD >< span datafld=price >< /span >< /TD > 
< TD >< span datafld=author >< /span >< /TD >
< /TR >
< /TABLE >

< /BODY >
< /HTML >  
 
結(jié)果如下:  
 

  但是由于每一筆資料有多個作者欄位資料,所以資料系結(jié)的方式必須稍作修改,以槽狀結(jié)構(gòu)來系結(jié)資料: 
< TABLE WIDTH=100% BORDER=1 datasrc=#xmldso > 
< THead > 
< TD >書號< /TD >< TD >書名< /TD >< TD >價格< /TD >< TD >作者< /TD >
< /THead > 
< TR > 
< TD >< span datafld=isbn >< /span >< /TD >
< TD >< span datafld=title >< /span >< /TD >
< TD >< span datafld=price >< /span >< /TD >
  < TD >
< table datasrc=#xmldso datafld=author > 
< tr >< td >< span datafld="$Text" >< /span >< /td >< /tr >
< /table > 
< /TD >  
< /TR > 
< /TABLE >  
 
結(jié)果如下: 
 

既然能夠瀏覽多筆資料,最好能加上換頁功能,而做法只要再配合兩個屬性-Table標簽的id及datapagesize屬性,以及簡短的程式就可以達成,范例如下: 
< HTML > 
< HEAD > 
< TITLE >< /TITLE >
< xml id="xmldso" src="Books.xml" >< /xml >
< script ID=clientEventHandlersVBS LANGUAGE=vbscript >
< !-- 

Sub button1_onclick 
  Table1.previousPage 
End Sub

Sub button2_onclick   Table1.nextPage 
End Sub

-- > 
< /script >
< /HEAD >
< BODY > 

< TABLE WIDTH=100% BORDER=1 datasrc=#xmldso  id=Table1 datapagesize=2 > 
< THead > 
< TD >書號< /TD >< TD >書名< /TD >< TD >價格< /TD >< TD >作者< /TD > 
< /THead >
< TR >
< TD >< span datafld=isbn >< /span >< /TD > 
< TD >< span datafld=title >< /span >< /TD > 
< TD >< span datafld=price >< /span >< /TD >
< TD > 
< table datasrc=#xmldso datafld=author > 
< tr >< td >< span datafld="$Text" >< /span >< /td >< /tr > 
< /table > 
< /TD > 
< /TR >
< /TABLE > 

< INPUT type="button" value="上一頁" id=button1 name=button1 > 
< INPUT type="button" value="下一頁" id=button2 name=button2 >  

< /BODY > 
< /HTML >  
DataIsland4.htm 
結(jié)果如下: 

  資料系結(jié)小技巧
 
對于資料系結(jié)也有許多小技巧,例如提供超連結(jié)、跑馬燈的效果或者TextBox系結(jié)提供編修資料的功能,范例如下: 
< HTML >
< HEAD >
< TITLE >< /TITLE >
< xml id="xmldso" src="Books.xml" >< /xml >
< /HEAD > 
< BODY >

< TABLE WIDTH=100% BORDER=1 datasrc=#xmldso id=Table1 datapagesize=2 >
< THead > 
< TD >書號< /TD >< TD >書名< /TD >
< TD >價格< /TD >< TD >出版商< /TD >
< TD >作者< /TD > 
< /THead > 
< TR > 
  < TD > < span datafld=isbn dataformatas=HTML >< /span > < /TD > 
  < TD > < a datafld=details >< span datafld=title >< /span >< /a >< < /TD > 
  < TD > < MARQUEE datafld=price >< /MARQUEE > < /TD > 
  < TD > < INPUT type="text" id=text1 name=text1 datafld=publisher > < /TD > 
< TD >
< table datasrc=#xmldso datafld=author >
< tr >< td > 
  < font color=red >   < span datafld="$Text" >< /span > < /font > 
< /td >< /tr >
< /table >
< /TD >
< /TR >
< /TABLE >

< /BODY > 
< /HTML >  
DataIsland4.htm 
結(jié)果如下: 
 

  結(jié) 論
 
看過了以上幾個范例,讀者會真正了解本文第一段所談到資料系結(jié)的好處,使用上極為簡單易用。不過應用方式及小技巧不少,如果能妥善運用,對于資料的展現(xiàn)以及維護都會比使用ASP.NET和HTML標簽混雜的程式容易許多。 
雖然展現(xiàn)快速容易,但是仍然有不足的地方,也就是彈性較小。如果想要做到更復雜的功能則就很困難,例如想要根據(jù)欄位內(nèi)容來做排序,這就要另外結(jié)合XSL技術(shù)或ASP.NET技術(shù)重新查詢資料庫。如果不需要復雜的功能,上面的這些范例就能夠解決掉大部分只需簡單展現(xiàn)的頁面。  
在下一期的文章中會再結(jié)合XML的魔法師XML DOM(XML Document Object Model),完全整合這四期文章的技術(shù),讓XML充滿無限的變化。  
 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
XML輕松學習手冊(5)XML實例解析
2種在HTML中綁定XML數(shù)據(jù)的方法
HTML操作XML數(shù)據(jù)島,數(shù)據(jù)綁定
我的XML學習筆記
html讀取xml數(shù)據(jù)實例一
如何在HTML中引用XML數(shù)據(jù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服