在 Asp.net 1.1 和 XML 中使用 Datagrid 分页






2.20/5 (6投票s)
2006年2月27日

41798
在 Asp.net 1.1 和 XML 中使用 Datagrid 分页
引言
XML 真的很好,当用作数据库时,它有很多优势。例如,你想将你的留言簿添加到 XML 数据库,然后使用 datagrid 显示数据。但是你想为你的 datagrid 添加分页。在这里我解释 datagrid 和 XML 文件中的分页。
数据库
部分将被存储在服务器上的 XML 文件中,名为 PartList.xml。这里的编码是。以下是 XML 文件的结构
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="part">
<xs:complexType>
<xs:sequence>
<xs:element name="quantity" type="xs:integer" minOccurs="0" msdata:Ordinal="1" />
<xs:element name="manufacturer" type="xs:string" minOccurs="0" msdata:Ordinal="2" />
<xs:element name="color" type="xs:string" minOccurs="0" msdata:Ordinal="3" />
<xs:element name="price" type="xs:float" minOccurs="0" msdata:Ordinal="4" />
</xs:sequence>
<xs:attribute name="partid" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="part" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<part partid="1">
<quantity>2</quantity>
<manufacturer>Torux</manufacturer>
<color>Red</color>
<price>1</price>
</part>
<part partid="2">
<quantity>0</quantity>
<manufacturer>Pear</manufacturer>
<color>white</color>
<price>99.99</price>
</part>
<part partid="3">
<quantity>34</quantity>
<manufacturer>Torux</manufacturer>
<color>black</color>
<price>22.95</price>
</part>
<part partid="4">
<quantity>3</quantity>
<manufacturer>Torux</manufacturer>
<color>clear</color>
<price>45</price>
</part>
<part partid="5">
<quantity>5</quantity>
<manufacturer>Torux</manufacturer>
<color>black</color>
<price>12</price>
</part>
<part partid="6">
<quantity>87</quantity>
<manufacturer>Torux</manufacturer>
<color>black</color>
<price>11.95</price>
</part>
<part partid="7">
<quantity>0</quantity>
<manufacturer>Pear</manufacturer>
<color>white</color>
<price>655.99</price>
</part>
<part partid="8">
<quantity>65</quantity>
<manufacturer>Pear</manufacturer>
<color>white</color>
<price>299.99</price>
</part>
<part partid="9">
<quantity>5</quantity>
<manufacturer>Pear</manufacturer>
<color>white</color>
<price>299.99</price>
</part>
<part partid="10">
<quantity>0</quantity>
<manufacturer>Torux</manufacturer>
<color>black</color>
<price>1.99</price>
</part>
<part partid="11">
<quantity>45</quantity>
<manufacturer>MacroWare</manufacturer>
<color>black</color>
<price>855</price>
</part>
<part partid="12">
<quantity>6</quantity>
<manufacturer>Pear</manufacturer>
<color>black</color>
<price>566.98</price>
</part>
<part partid="13">
<quantity>0</quantity>
<manufacturer>Torux</manufacturer>
<color>black</color>
<price>4</price>
</part>
<part partid="14">
<quantity>44</quantity>
<manufacturer>MacroWare</manufacturer>
<color>black</color>
<price>188.94</price>
</part>
<part partid="15">
<quantity>1</quantity>
<manufacturer>Pear</manufacturer>
<color>white</color>
<price>99</price>
</part>
<part partid="16">
<quantity>9</quantity>
<manufacturer>Pear</manufacturer>
<color>white</color>
<price>34.43</price>
</part>
<part partid="17">
<quantity>56</quantity>
<manufacturer>MacroWare</manufacturer>
<color>black</color>
<price>19.99</price>
</part>
<part partid="18">
<quantity>534</quantity>
<manufacturer>MacroWare</manufacturer>
<color>black</color>
<price>34.88</price>
</part>
<part partid="19">
<quantity>0</quantity>
<manufacturer>MacroWare</manufacturer>
<color>black</color>
<price>998.99</price>
</part>
<part partid="20">
<quantity>5</quantity>
<manufacturer>Torux</manufacturer>
<color>black</color>
<price>5</price>
</part>
</NewDataSet>
应用程序代码
在 visual studio.net 中,我们打开一个新的网页(webform1.aspx),然后添加此代码
<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True"
PageSize="5"></asp:datagrid>
并在代码隐藏文件中添加此代码
留言簿将被存储在服务器上的 XML 文件中,名为 guestbook.xml。XML 文件的编码更改为 ISO-8859-1,以便能够处理特殊字符。以下是 XML 文件的结构
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Fill the Dataset
Dim ds As New DataSet()
ds.ReadXml(Server.MapPath(".") & "\..\Xml\PartList.xml")
'Set the DataGrid's Source and bind it.
DataGrid1.DataSource = ds
If Not IsPostBack Then
DataGrid1.DataBind()
End If
'Dispose Items
ds.Dispose()
End Sub
'Implement the EventHandler for PageIndexChanged
Private Sub ChangePage(ByVal source As Object, ByVal e As _
System.Web.UI.WebControls.DataGridPageChangedEventArgs) _
Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
End Sub
好的!现在你可以测试你的程序了。希望你喜欢!!
结论
我想说的是,你应该将数据与处理过程分离,并且在这方面,XML 提供了很大的帮助。如果你想更改 datagrod 视图的外观,你只需要更改 asp.net 代码 文件即可。