ASP.NET Web Forms - XML ファイル


XML ファイルをリスト コントロールにバインドできます。


XML ファイル

ここに "countries.xml" という名前の XML ファイルがあります:

<?xml version="1.0" encoding="ISO-8859-1"?>

<countries>

<country>
<text>Norway</text>
<value>N</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>

この XML ファイルを表示:countries.xml


DataSet を List コントロールにバインドする

まず、"System.Data" 名前空間をインポートします。DataSet オブジェクトを操作するにはこの名前空間が必要です。次のディレクティブを .aspx ページの先頭に含めます:

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

次に、XML ファイル用の DataSet を作成し、ページの最初の読み込み時にこの XML ファイルを DataSet に読み込みます:

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

データを RadioButtonList コントロールにバインドするには、まず .aspx ページで RadioButtonList コントロールを作成します(asp:ListItem 要素は含めません):

<html>
<body>

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

</body>
</html>

次に、XML DataSet を作成するスクリプトを追加し、XML DataSet 内の値を RadioButtonList コントロールにバインドします:

<%@ 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>

サンプルを表示 »

その他の拡張