### XML 数据的增删改查(含分页显示) #### 概述 本文将详细介绍如何使用 XML 文件进行数据的增加、删除、修改以及查询,并且实现了分页显示的功能。这非常适合初学者理解 XML 的基本操作及其在实际项目中的应用。 #### XML 文件与 ASP.NET 中的数据操作 XML(Extensible Markup Language)是一种用于标记数据的语言,它定义了一套规则来对文档进行编码,以达到结构化的目的。在本示例中,我们将通过一个 ASP.NET Web 应用程序来展示如何读取 XML 文件并对其进行增删改查等操作。 #### 代码分析 ##### 页面加载与绑定数据 页面加载时,`Page_Load` 方法会被触发。这里调用了 `bind()` 方法来初始化 GridView 控件中的数据。该方法接收当前页码作为参数,并调用 `bindList()` 方法获取指定页码的数据。 ```csharp protected void Page_Load(object sender, EventArgs e) { bind((AspNetPager1.StartRecordIndex / AspNetPager1.PageSize) + 1); } ``` `bind()` 方法主要负责设置 GridView 的数据源并刷新其内容。 ```csharp public void bind(int PageIndex) { GridView1.DataSource = bindList(PageIndex); GridView1.DataBind(); } ``` ##### 获取分页数据 `bindList()` 方法用于从 XML 文件中提取数据,并根据传入的页码返回相应页的数据。 ```csharp public DataTable bindList(int PageIndex) { string Path = "../Video/list1.xml"; DataTable dt = new DataTable(); // 添加列 dt.Columns.Add("Cid", typeof(string)); dt.Columns.Add("name", typeof(string)); dt.Columns.Add("videotitle", typeof(string)); dt.Columns.Add("link", typeof(string)); dt.Columns.Add("thumb", typeof(string)); XmlDataDocument xmlData = new XmlDataDocument(); xmlData.Load(Server.MapPath(Path)); XmlNode root = xmlData.SelectSingleNode("item"); int PageSize = 3; AspNetPager1.PageSize = PageSize; int i = 0; int count = 0; foreach (XmlNode node in root) { count++; i++; DataRow dr = dt.NewRow(); if (i > ((PageIndex - 1) * PageSize) && i <= (PageIndex * PageSize)) { dr["Cid"] = node.Attributes["Cid"].Value; dr["name"] = node.Attributes["name"].Value; dr["videotitle"] = node.Attributes["videotitle"].Value; dr["link"] = node.Attributes["link"].Value; dr["thumb"] = node.SelectSingleNode("thumb").ChildNodes.Item(0).Value; dt.Rows.Add(dr); } AspNetPager1.RecordCount = count; } return dt; } ``` #### 分页处理 当用户翻页时,`AspNetPager1_PageChanged1` 事件被触发。该方法会重新计算当前页码,并再次调用 `bind()` 方法更新数据。 ```csharp protected void AspNetPager1_PageChanged1(object sender, EventArgs e) { if ((AspNetPager1.StartRecordIndex % AspNetPager1.PageSize) > 0) { bind((AspNetPager1.StartRecordIndex / AspNetPager1.PageSize) + 1); } else { bind(AspNetPager1.StartRecordIndex / AspNetPager1.PageSize); } } ``` #### 数据的增加、删除与修改 尽管示例代码中没有直接体现数据的增加、删除和修改操作,但可以通过以下方式来实现: 1. **增加数据**:可以使用 `XmlDocument` 或 `XmlDataDocument` 的方法向 XML 文件中添加新的节点。 2. **删除数据**:通过查找特定的节点并使用 `RemoveChild` 方法来移除。 3. **修改数据**:同样地,找到需要修改的节点后,更新其属性或文本内容即可。 #### 结论 本文详细介绍了如何使用 XML 文件在 ASP.NET 中进行数据的增删改查操作,并实现了基本的分页显示功能。通过这些示例,读者可以更好地理解 XML 在实际项目中的应用,并掌握基本的操作技巧。对于刚接触 XML 语言的新手来说,这是一个非常好的起点。
using System.Xml;//必须引用的命名空间
public partial class Admin_VideoList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
bind((AspNetPager1.StartRecordIndex / AspNetPager1.PageSize) + 1);
}
/// <summary>
/// 绑定gridview数据并显示
/// </summary>
/// <param name="PageIndex"></param>
public void bind(int PageIndex)//生明一个参数 ---当前第几页
{
GridView1.DataSource = bindList(PageIndex);
GridView1.DataBind();
}
/// <summary>
/// 方法bindList调用video文件中的数据(供显示调用)
/// </summary>
/// <param name="PageIndex"></param>
/// <returns></returns>
public DataTable bindList(int PageIndex)
{
string Path = "../Video/list1.xml";//定义路径的初始值
DataTable dt = new DataTable();//创建table 暂时存放数据
dt.Columns.Add("Cid", typeof(string));//创建table列的集合
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("videotitle", typeof(string));
dt.Columns.Add("thumb", typeof(string));
XmlDataDocument xmlData = new XmlDataDocument();//创建检索数据的xmldata
xmlData.Load(Server.MapPath(Path));//xmldata获取路径
XmlNode root = xmlData.SelectSingleNode("item");//声明一个节点item
int PageSize = 3;//每页三条记录
AspNetPager1.PageSize = PageSize;//AspNetPager1是一个分页控件
int i = 0;
int count = 0;
foreach (XmlNode node in root)
{
count++;
i++;
DataRow dr = dt.NewRow();//声明table中的rows
if (i >((PageIndex - 1) * PageSize) && i <= (PageIndex * PageSize))
{
dr["Cid"] = node.Attributes["Cid"].Value;//给rows中列赋值
dr["name"] = node.Attributes["name"].Value;
dr["videotitle"] = node.Attributes["videotitle"].Value;
dr["link"] = node.Attributes["link"].Value;
dr["thumb"] = node.SelectSingleNode("thumb").ChildNodes.Item(0).Value;//寻找新的节点thumb 并赋值
dt.Rows.Add(dr);//给datatable添加一条记录
}
AspNetPager1.RecordCount = count; //有几条记录要显示---PageSize是要显示几条
//往往最后一页的记录count会<PageSize
剩余6页未读,继续阅读
- yu_0000002012-11-27很好的总结,多谢。
- usun822012-08-31不错,对xml的控制都有了。
- 谁说我是逗比2013-01-20不错,对xml有了新的认识
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助