ASP.NET - XML na file

Maaari naming i-bind ang XML na file sa list na kontrol.

Isang XML na file

May isang XML na file na may pangalan na "countries.xml":

<?xml version="1.0" encoding="ISO-8859-1"?>
<countries>
<country>
  <text>China</text>
  <value>C</value>
</country>
<country>
  <text>Sweden</text>
  <value>S</value>
</country>
<country>
  <text>France</text>
  <value>F</value>
</country>
<country>
  <text>Italy</text>
  <value>I</value>
</country>
</countries>

Gawin mo itong file na ito:countries.xml

I-bind ang DataSet sa List na kontrol

Unang, ilagay ang namespace na "System.Data" na nangangailangan kaming gamitin ang namespace na ito kasama ang DataSet na bagay. Ilagay ang sumusunod na utos sa itaas ng .aspx na pahina:

<%@ Import Namespace="System.Data" %>

Pagkatapos, lumikha ng DataSet para sa XML na file, at ilagay ang XML na file sa DataSet kapag unang inilagay ang pahina:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New DataSet
  mycountries.ReadXml(MapPath("countries.xml"))
end if
end sub

Kung gusto mong i-bind ang Dataset sa RadioButtonList na kontrol, unang ginawa ay gumawa ng RadioButtonList na kontrol sa .aspx na pahina (walang asp:ListItem na elemento):

<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

然後添加構建這個 XML DataSet 的腳本:

<%@ Import Namespace="System.Data" %>
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New DataSet
  mycountries.ReadXml(MapPath("countries.xml"))
  rb.DataSource=mycountries
  rb.DataValueField="value"
  rb.DataTextField="text"
  rb.DataBind()
end if
end sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
</form>
</body>
</html>

然後,我們添加一個子例程,該子例程會在用戶點擊 RadioButtonList 控件中的項目時執行。當用戶點擊某個單選按鈕時,label 中會出現一條文本:

<%@ Import Namespace="System.Data" %>
<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New DataSet
  mycountries.ReadXml(MapPath("countries.xml"))
  rb.DataSource=mycountries
  rb.DataValueField="value"
  rb.DataTextField="text"
  rb.DataBind()
end if
end sub
sub displayMessage(s as Object,e As EventArgs)
lbl1.text="Your favorite country is: " & rb.SelectedItem.Text
end sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form>
</body>
</html>

顯示這個例子