GridViewでXMLファイル更新@ASP.Net

GridViewでXMLファイル更新@ASP.Net GridViewにXMLファイルの内容を表示します。 更新ボタンを配置して、更新します。 まず、ObjectDataSourceに配置するクラスを作成します。 DataSetを返すgetDataを作成します。 DatasetのReadXmlメソッドでXMLファイルを読み込みます。 (Server.MapPathは利用できないので、HttpContext.Current.Server.MapPathとなります。) UpdateDataSetを作成します。 引数を元に、XMLファイルの対象レコードを抽出し、 内容を変更して、XMLファイルを更新します。 ObjectDataSourceに作成したクラスを配置します。 SelectMethodとUpdateMethodに作成したメソッドを設定します。 GridViewにObjectDataSourceを配置します。 カラムのDataFieldは、更新メソッドの引数と同じ名称にします。 DataKeyNamesとReadOnlyを設定します。 画面を開いて、無事に動作するのを確認します。 ●xml
<?xml version="1.0" standalone="yes"?> <Usrs>     <Usr>         <Id>1</Id>         <Name>氏名</Name>         <BusyoNm>営業第1課</BusyoNm>         <Yakusyoku>一般</Yakusyoku>     </Usr>     <Usr>         <Id>2</Id>         <Name>氏名2</Name>         <BusyoNm>営業第1課</BusyoNm>         <Yakusyoku>課長</Yakusyoku>     </Usr> </Usrs>
●DataSet.vb
Imports System.Data Imports Microsoft.VisualBasic Public Class XmlDataSet     Public Function getData() As DataSet         'usr.xmlの内容を読み込み、DataSetに展開します。         Dim dt As DataSet = New DataSet()         dt.ReadXml(HttpContext.Current.Server.MapPath("usr.xml"))         Return dt     End Function     Public Sub UpdateDataSet(ByVal Id As Integer, ByVal Name As String, ByVal BusyoNm As String, ByVal Yakusyoku As String)         'usr.xmlの内容を読み込み、DataSetに展開します。         Dim dt As DataSet = New DataSet()         dt.ReadXml(HttpContext.Current.Server.MapPath("usr.xml"))         'IDが一致するレコードを取得する         Dim rows() As DataRow         Dim row As DataRow         rows = dt.Tables("usr").Select("Id=" + CStr(Id))         For Each row In rows             row("Name") = Name             row("BusyoNm") = BusyoNm             row("Yakusyoku") = Yakusyoku             dt.WriteXml(HttpContext.Current.Server.MapPath("usr.xml"))         Next     End Sub End Class
●aspx
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>GridViewでXMLファイル更新</title> </head> <body>     <form id="form1" runat="server">     <div>         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="Id">             <Columns>                 <asp:CommandField ShowEditButton="True" />                 <asp:BoundField DataField="Id" HeaderText="ID" ReadOnly="True" />                 <asp:BoundField DataField="Name" HeaderText="名前" />                 <asp:BoundField DataField="BusyoNm" HeaderText="部署名" />                 <asp:BoundField DataField="Yakusyoku" HeaderText="役職" />             </Columns>             <FooterStyle BackColor="White" ForeColor="#000066" />             <RowStyle ForeColor="#000066" />             <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />             <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />             <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />         </asp:GridView>         <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="getData" TypeName="XmlDataSet" UpdateMethod="UpdateDataSet">             <UpdateParameters>                 <asp:Parameter Name="Id" Type="Int32" />                 <asp:Parameter Name="Name" Type="String" />                 <asp:Parameter Name="BusyoNm" Type="String" />                 <asp:Parameter Name="Yakusyoku" Type="String" />             </UpdateParameters>         </asp:ObjectDataSource>     </div>     </form> </body> </html>

http://www.cocoaliz.com/asp.net/index/1/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值