DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 采用XML數據來填充ASP表單
采用XML數據來填充ASP表單
編輯:XML詳解     
文章裡,我們會使用一個簡單的Web表單,它會列出某個目錄下的一些XML文件。然後,我們會從這個目錄裡選擇一個文件,將它發送到另一個Web表單裡,後者會使用被選中的XML文件來填充某些文本字段。

示例XML

我們的示例XML文檔包含有一組含有基本信息的元素,如Listing A所示:

Listing A: sample.XML
<Sample>
<Name>John Doe</Name>
<Address>900 N. Michigan Ave</Address>
<City>Chicago</City>
<State>IL</State>
<Zip>60614</Zip>
<Phone>630-555-5555</Phone>
</Sample>

為了讓本文的說明更加有趣,我們會再創建兩個含有不同數據的示例文件,如Listing B和Listing C所示:

Listing B: sample2.XML

<Sample>
<Name>George W. Bush</Name>
<Address>1600 Pennsylvania Ave NW</Address>
<City>Washington</City>
<State>DC</State>
<Zip>20500</Zip>
<Phone>202-456-1111</Phone>
</Sample>

Listing C: sample3.XML
<Sample>
<Name>Bill Gates</Name>
<Address>1 Microsoft Way</Address>
<City>Redmond</City>
<State>WA</State>
<Zip>98052</Zip>
<Phone>425-882-8080</Phone>
</Sample>

創建一個叫做C:\XMLdocs的目錄,並將所有三個示例文件放到這個目錄下。

Web表單

我們會為我們的應用程序創建兩個Web表單。我們要用第一個表單來選擇XML文件,用第二個表單來顯示XML數據。

首先要用Visual Studio .NET創建一個新的ASP.Net Web應用程序。然後將最初的表單保存為SelectFile.ASPx。如果你雙擊這個表單,代碼編輯器就會被打開。

你首先需要把下面這一行加到代碼的最前面,才能夠將IO包添加到你的應用程序裡:

usingSystem.IO;

然後,找到代碼內的Page_Load()方法。你需要將這個方法編輯成像下面Listing D裡的代碼一樣:

Listing D: SelectFile'sPage_Load() method
private void Page_Load(object sender, System.EventArgs e) {
System.IO.DirectoryInfo dir;
System.IO.FileInfo[] files;
System.IO.FileInfofinfo;
System.Collections.IEnumeratorfileEnum;

dir = new DirectoryInfo ("C:\\XMLdocs");
files = dir.GetFiles ("*.XML");
fileEnum = files.GetEnumerator();
Response.Write("Please select the XML file to load: <br><br>\n");

while (fileEnum.MoveNext()) {
  finfo = (FileInfo) fileEnum.Current;
  Response.Write("<a href=\"ShowData.ASPx?filename=" + finfo.Name + "\">" + finfo.Name + "</a><br>\n");
}
}

現在向你的項目裡添加一個新的Web表單——ShowData.ASPx。在這個表單裡放置六個文本框,並將其命名為:txtName、txtAddress、txtCity、txtState、txtZip和txtPhone。同樣的,在表單裡創建六個標簽,並將其標題欄分別命名為Name(姓名)、Address(地址)、City(城市)、State(州)、Zip(郵政編碼)和Phone(電話)。

雙擊ShowData表單來啟動代碼編輯器。你需要編輯ShowData表單的Page_Load()方法,使其看起來就像Listing E裡的一樣:

Listing E: ShowData'sPage_Load() method
private void Page_Load(object sender, System.EventArgs e) {
string filename;
XmlTextReaderXMLReader;

filename = "C:\\XMLdocs\\" + Request.Params.Get("filename");
xmlReader = new XMLTextReader(filename);

while (XMLReader.Read()) {
  if (xmlReader.NodeType == XMLNodeType.Element) {
   switch (XMLReader.LocalName) {
    case "Name":
     txtName.Text = XMLReader.ReadString();
     break;
    case "Address":
     txtAddress.Text = XMLReader.ReadString();
     break;
    case "City":
     txtCity.Text = XMLReader.ReadString();
     break;
    case "State":
     txtState.Text = XMLReader.ReadString();
     break;
    case "Zip":
     txtZip.Text = XMLReader.ReadString();
     break;
    case "Phone":
     txtPhone.Text = XMLReader.ReadString();
     break;
   }
  }
}
}

你還需要把下面這一行加到代碼的最前面,才能夠將XML包添加到你的應用程序裡:

usingSystem.XML;

這段代碼在本質上同我們在C#表單例子裡所使用的代碼相同。其主要的不同之處在於,我們不再利用按鈕來調用這段代碼,而且我們也不再需要使用OpenFileDialog控件來尋找XML文件。文件名是由SelectFile的Web表單所提供的,這段代碼在ShowData表單被加載的時候被調用。

我們使用XmlTextReaders Read()方法在XML文檔裡迭代。隨著每次對Read()的調用,我們都會處理另一個XML節點。我們只用簡單地檢查一下,以確保該節點是一個元素,然後就可以使用XML元素節點裡的字符串數據來填充我們表格裡相應的文本框了。

運行演示程序
一旦你完成了演示表單的編碼和編譯,你就已經准備好使用它們了。將你的Web浏覽器指向SelectFile表單。當頁面被載入的時候,它就應該能夠列出我們先前創建的示例文件了。只用簡單地點擊其中一個文件名,你就會看到數據填充在ShowData表單裡。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved