<%
' --------------------------------------------
' 版权所有:仅供学习
' 制作时间:2004年4月9号16时45分
' 初学,请多指教!
' -----------------------------------------------
%>
<%@ Import namespace="System.Data" %>
<%@ Import namespace="System.IO" %>
<%@ Import Namespace="System.Xml" %>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Read XML file</title>
    <style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
    </style>
  </head>
  <body>
    <H2>Read XML file</H2>
<form action="Test.aspx" runat="server">
      <asp:Label id="lblXMLFileName" runat="server" /><br>
      <asp:Label ID="lblExists" runat="server" />      
      <BR/><BR/>
      <asp:DataGrid AutoGenerateColumns="False" id="dgServers" runat="server" ShowFooter="false" ShowHeader="false"
                    OnUpdateCommand="UpdateRecord"
                    OnEditCommand="EditRecord"
                    OnCancelCommand="CancelEdit"
                    OnDeleteCommand="DeleteRecord">
<Columns>
          <asp:BoundColumn DataField="名称" HeaderText="商品名称" />
          <asp:BoundColumn DataField="价格" HeaderText="商品价格" />
          <asp:BoundColumn DataField="颜色" HeaderText="商品颜色" />
          <asp:EditCommandColumn ButtonType="LinkButton"
                        UpdateText="保存" CancelText="取消" EditText="修改" />
          <asp:ButtonColumn Text="删除" CommandName="Delete" />
        </Columns>
</asp:DataGrid>
  <table width="243" border="0" align="center">
  <tr bgcolor="#CC3300">
    <td colspan="2"><div align="center" class="style1">XML Insert</div></td>
    </tr>
  <tr>
    <td width="59">Name</td>
    <td width="168"><asp:TextBox ID="txtName" runat="server" /></td>
  </tr>
  <tr>
    <td> Price </td>
    <td><asp:TextBox ID="txtPrice" runat="server" /></td>
  </tr>
  <tr>
    <td>Color</td>
    <td><asp:TextBox ID="txtColor" runat="server" /></td>
  </tr>
  <tr bgcolor="#CC3300">
    <td colspan="2"><asp:Button ID="btnInsert" Text="Insert" OnClick="btnInsert_Click"
runat="server" Width="250" BackColor="#CE3000" 
ForeColor="#FFFFFF" /></td>
    </tr>
</table>
</form>
</body>
</html><script language="VB" runat="server">
Dim strXMLFile As String = Server.MapPath("Test.XML")Sub Page_Load(Source As Object, E As EventArgs)
lblXMLFileName.Text = strXMLFile
if File.Exists(strXMLFile) then
lblExists.Text ="文件存在"
else
CreateXMLFile()
End if

if Not Page.IsPostBack Then
fillDG()
end ifEnd Sub
Sub CreateXMLFile()
' --------------------------------------------------------
' Create a XML File

lblExists.Text ="不存在"
Dim xd As New XmlDocument()
Dim xe As XmlElement
' start the xml document
dim i 
with xd
.loadxml("<?xml version='1.0' standalone='yes'?><商品列表></商品列表>")
xe=.DocumentElement
dim nodName,nodPrice,nodColor As XmlNode
' -------------------------------------------------
for i=1 to 3
Dim nodRoot As XmlNode
nodRoot= .CreateNode(XmlNodeType.Element,"商品","")
nodRoot=xe.AppendChild(nodRoot)

nodName=.CreateNode(XmlNodeType.Element,"名称","")
nodName.InnerText="名称"&i
nodRoot.AppendChild(nodName)

nodPrice=.CreateNode(XmlNodeType.Element,"价格","")
nodPrice.InnerText="价格"&i
nodRoot.AppendChild(nodPrice)

nodColor=.CreateNode(XmlNodeType.Element,"颜色","")
nodColor.InnerText="颜色"&i
nodRoot.AppendChild(nodColor)

next
.Save(strXMLFile)
End With
End Sub
Function DS()
  Dim objDataSet As New DataSet()
  objDataSet.ReadXml(strXMLFile)
  Return objDataSet
End FunctionSub fillDG()
  dgServers.DataSource = DS().Tables(0).DefaultView
  dgServers.DataBind()  
End SubSub btnInsert_Click(Sender As Object, E As EventArgs)
  With DS()
Dim r As DataRow = .Tables(0).NewRow()
r("名称")=Me.txtName.Text
r("价格")=Me.txtPrice.Text
r("颜色")=Me.txtColor.Text
.Tables(0).Rows.Add(r)
.WriteXml(strXMLFile, XmlWriteMode.IgnoreSchema)
  End With
 fillDG()
End SubPublic Sub EditRecord(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
  dgServers.EditItemIndex = E.Item.ItemIndex
  fillDG()
End SubPublic Sub CancelEdit(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
  dgServers.EditItemIndex = -1
  fillDG()
End SubPublic Sub DeleteRecord(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)  ' Retrieve the ID of the product to be deleted
  With DS()
 try
  .Tables(0).Rows.RemoveAt(E.Item.ItemIndex)
 catch
 End try
  .WriteXml(strXMLFile, XmlWriteMode.IgnoreSchema)
  End With
  dgServers.EditItemIndex = -1
  fillDG()
End SubPublic Sub UpdateRecord(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
  Dim txtName As TextBox = CType(E.Item.Cells(0).Controls(0), TextBox)
  Dim txtPrice As TextBox = CType(E.Item.Cells(1).Controls(0), TextBox)
  Dim txtColor As TextBox = CType(E.Item.Cells(2).Controls(0), TextBox)
  With DS()
Dim row As DataRow=.Tables(0).Rows.Item(E.Item.ItemIndex)
row.BeginEdit()
row("名称")=txtName.Text
row("价格")=txtPrice.Text
row("颜色")=txtColor.Text
    row.EndEdit()
.WriteXml(strXMLFile, XmlWriteMode.IgnoreSchema)
  End With
  dgServers.EditItemIndex = -1
   fillDG()
End Sub
</script>将文件保存成Test.aspx。
欢迎大家多提宝贵意见!