首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

使用 C# 處理 XML 文檔:將資料繫結至 ListBox 控制項 (第 2 部分)

     編輯:關於C語言

前言

在 ASP.NET Web Forms 應用程式中,常需從 XML 文件讀取資料並繫結至伺服器控制項。本文示範如何使用 XmlDocument 載入 XML、透過 GetElementsByTagName 擷取特定節點,並將資料填入 ListBox 控制項,最後處理使用者的選取事件。

完整程式碼範例

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Xml" %>
<html>
<head>
<script language="C#" runat="server">
private void Page_Load(Object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ArrayList values = new ArrayList(); // 作為資料來源
        XmlDocument doc = new XmlDocument(); // 表示 XML 文件
        doc.Load(Server.MapPath("people.xml"));

        // 取得所有名為 "name" 的子代元素集合
        XmlNodeList elemList = doc.GetElementsByTagName("name");
        for (int i = 0; i < elemList.Count; i++)
        {
            values.Add(elemList[i].InnerXml);
        }

        ListBox1.DataSource = values;
        ListBox1.DataBind();
    }
}

// 取得被選取項目的文字
private void SubmitBtn_Click(Object sender, EventArgs e)
{
    if (ListBox1.SelectedIndex > -1)
    {
        Label1.Text = "Selected Option: " + ListBox1.SelectedItem.Text + "<p>";
    }
}
</script>
</head>
<body>
<form runat="server">
<h3>Data Binding ListBox</h3>
<asp:Label id="Label1" font-name="Verdana" font-size="10pt" runat="server"/>
<asp:ListBox id="ListBox1" SelectionMode="Single" Rows="1" runat="server"/>
<asp:Button id="Button1" Text="Submit" OnClick="SubmitBtn_Click" runat="server"/>
</form>
</body>
</html>

關鍵步驟解析

  1. 載入 XML:使用 XmlDocument.Load 讀取伺服器對應路徑下的 people.xml。
  2. 擷取節點:GetElementsByTagName("name") 回傳符合名稱的 XmlNodeList,此處僅針對 <name> 節點。
  3. 資料繫結:將節點的 InnerXml 加入 ArrayList,再指派給 ListBox.DataSource 並呼叫 DataBind()。
  4. 事件處理:在按鈕點擊事件中檢查 SelectedIndex,若有選取項目則顯示其文字內容。

注意事項

  • 確認 XML 檔案路徑正確,且結構包含 <name> 元素。
  • ArrayList 為非泛型集合,現代開發建議改用 List<string>。
  • 若 XML 含命名空間,需使用 XmlNamespaceManager 配合 XPath 查詢。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved