chenjinjie的专栏

=====初学者的专栏=====

将某一目录下的所有相同格式的 XML文件绑定到不同的DataGrid

<%@ Page Language="vb"%>
<%@ Import NameSpace = "System" %>
<%@ Import NameSpace = "System.Xml" %>
<%@ Import NameSpace = "System.IO" %>
<%@ Import NameSpace = "System.Collections" %>
<%@ Import NameSpace = "System.Web" %>
<%@ Import NameSpace = "System.Web.UI" %>
<%@ Import NameSpace = "System.Web.UI.WebControls" %>
<%@ Import NameSpace = "System.Data" %>

<script runat=Server>
Sub Page_Load( sender as object,  e as System.EventArgs)
  Dim dir As DirectoryInfo = New DirectoryInfo("D:/Web")
  Dim files As FileInfo() = dir.GetFiles()
  Dim count As Integer = files.Length
  Dim i As Integer
  For i = 0 To count - 1
    If files(i).Name.SubString(files(i).Name.LastIndexOf(".")) = ".xml" Then
      Dim ds As New DataSet()
      'ds.ReadXml("d:/Web/c.xml")
      ds.ReadXml(files(i).FullName)
      Dim dt as DataGrid = New DataGrid()
      dt.ID = "DataGrid" + i.ToString()
      dt.AutoGenerateColumns=false

      Dim MyName As BoundColumn = New BoundColumn()
      Dim MyProductID As BoundColumn = New BoundColumn()
      Dim Price As BoundColumn = New BoundColumn()
      Dim Quantity As BoundColumn = New BoundColumn()

      MyName.HeaderText="名字"
      MyName.DataField="Name"

      MyProductID.HeaderText="序号"
      MyProductID.DataField="ProductID"

      Price.HeaderText="价格"
      Price.DataField="Price"

      Quantity.HeaderText="数量"
      Quantity.DataField="Quantity"

      dt.Columns.AddAt(0, MyName)
      dt.Columns.AddAt(1, MyProductID)
      dt.Columns.AddAt(2, Price)
      dt.Columns.AddAt(3, Quantity)

      dt.DataSource = ds.Tables("Product")
      dt.DataBind()
      Me.Controls.Add(dt)
    End If
    Next
End Sub
</script>
<form runat=server>
</form>

C#写法

<%@ Page Language="C#"%>
<%@ Import NameSpace = "System" %>
<%@ Import NameSpace = "System.Xml" %>
<%@ Import NameSpace = "System.IO" %>
<%@ Import NameSpace = "System.Collections" %>
<%@ Import NameSpace = "System.Web" %>
<%@ Import NameSpace = "System.Web.UI" %>
<%@ Import NameSpace = "System.Web.UI.WebControls" %>
<%@ Import NameSpace = "System.Data" %>

<script runat=Server>
void Page_Load(object sender, System.EventArgs e)
{
  DirectoryInfo dir  = new DirectoryInfo("D://Web");
  FileInfo[] files = dir.GetFiles();
  int count = files.Length;
  for(int i = 0;i<count;i++)
  {
    if(files[i].Name.Substring(files[i].Name.LastIndexOf(".")) == ".xml")
    {
      DataSet ds = new DataSet();
      //'ds.ReadXml("d://Web//c.xml");
      ds.ReadXml(files[i].FullName);
      DataGrid dt = new DataGrid();
      dt.ID = "DataGrid" + i.ToString();
      dt.AutoGenerateColumns=false;

      BoundColumn MyName = new BoundColumn();
      BoundColumn MyProductID = new BoundColumn();
      BoundColumn Price= new BoundColumn();
      BoundColumn Quantity = new BoundColumn();

      MyName.HeaderText="名字";
      MyName.DataField="Name";

      MyProductID.HeaderText="序号";
      MyProductID.DataField="ProductID";

      Price.HeaderText="价格";
      Price.DataField="Price";

      Quantity.HeaderText="数量";
      Quantity.DataField="Quantity";

      dt.Columns.AddAt(0, MyName);
      dt.Columns.AddAt(1, MyProductID);
      dt.Columns.AddAt(2, Price);
      dt.Columns.AddAt(3, Quantity);

      dt.DataSource = ds.Tables["Product"];
      dt.DataBind();
      this.Controls.Add(dt);
    }
  }
}
</script>
<form runat=server>
</form>

xml文件格式:

<?xml version="1.0" encoding="gb2312"?>
<DataSet>
    <Product>
        <Name>[孟宪会之精彩世界]</Name>
        <ProductID>1</ProductID>
        <Price>12000</Price>
        <Quantity>1</Quantity>
    </Product>
    <Product>
        <Name>http://dotnet.aspx.cc</Name>
        <ProductID>2</ProductID>
        <Price>12000</Price>
        <Quantity>2</Quantity>
    </Product>
    <Product>
        <Name>http://xml.sz.luohuedu.net/xml/</Name>
        <ProductID>3</ProductID>
        <Price>18000</Price>
        <Quantity>2</Quantity>
    </Product>
</DataSet>

 

阅读更多
个人分类: DataGrid专集
上一篇利用DataGrid显示某目录下的所有文件
下一篇XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭