Repeater、GridView等 操作XML文件

在项目中需要对XML文件进行管理,我用了Repeater 的方式来实现了实时的更新
希望对阅读这篇随笔的您有所帮助,我用的Repeater,您也可以用GridView等...区别仅仅在于控件内的按钮的事件中获取当前操作对象索引的方式..
如果您的XML文档格式与此不同,建议使用下面的XML格式(因为这个格式能够通过DataSet的LoadXML方法直接获得数据源,并且能够使用DateSet的WriteXML方法输出XML文档)或者您可以根基自己的格式重新写ReadXmlInfo和WriteXMLInfo这两个方法。
首先是我的XML格式
XML格式
<?xml version="1.0" standalone="yes"?>
<imgs>
  <pic name="/adv_pic/1.jpg" url="http://www.baidu.com/" title="美国影视中的黑人总统盘点" />
  <pic name="/adv_pic/2.jpg" url="http://www.baidu.com/" title="斯琴格日乐--我很好!" />
  <pic name="/adv_pic/3.jpg" url="http://www.baidu.com/" title="伦敦金融城市长秀" />
  <pic name="/adv_pic/4.jpg" url="http://www.baidu.com/" title="市长大人的金色大马车" />
  <pic name="/adv_pic/5.jpg" url="http://www.baidu.com/" title="英国×××歌剧院艺术家为公益缘何全裸?" />
</imgs>
HTML  CODE
Code
<%@ Register Assembly="Anthem" Namespace="Anthem" TagPrefix="anthem" %>
<!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>flash橱窗管理</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <link href="../css/css.css" type="text/css" rel="stylesheet">
</head>
<body>
    <form id="form1" runat="server">
    <div style="text-align:center;">
         <anthem:Repeater ID="Repeater1" runat="server" AutoUpdateAfterCallBack="true">
                    <HeaderTemplate>
                        <table class="DataList" cellspacing="0" rules="all" border="1" id="Datagrid2" style="width: 100%;
                            border-collapse: separate;">
                            <tr class="DataList_Head" align="Left">
                                <td align="center" style="width: 2%;">
                                    编号</td>
                                <td align="center" style="width: 30%;">
                                    标题</td>
                                <td align="center" style="width: 30%;">
                                    地址</td>
                                <td align="center" style="width: 30%;">
                                    图片</td>
                                <td align="center" style="width: 8%;">
                                    操作</td>
                            </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr class="DataList_Item" align="Left">
                            <td align="center" style="width: 2%;">
                                    <%#Container.ItemIndex%></td>
                            <td align="center" style="width: 30%;">
                                <a href='<%# DataBinder.Eval(Container.DataItem,"url")%>'
                                    target="_blank"><%# DataBinder.Eval(Container.DataItem,"title")%></a>
                            </td>
                            <td align="center" style="width: 30%;">
                            <a href='<%# DataBinder.Eval(Container.DataItem,"url")%>'
                                    target="_blank">
                                <%#DataBinder.Eval(Container.DataItem, "url").ToString()%></a>
                            </td>
                            <td align="center"  style="width: 30%;">
                                <a href='<%# DataBinder.Eval(Container.DataItem,"name")%>'
                                    target="_blank"><%# DataBinder.Eval(Container.DataItem,"name")%></a>
                            </td>
                            <td align="center"  style="width: 10%;">
                            <anthem:LinkButton Text="修改" ID="btn_Edit" OnClick="btn_Edit_Click" runat="server" ToolTip='<%#Container.ItemIndex%>'></anthem:LinkButton>
                                <anthem:LinkButton Text="删除" ID="btn_Delete" OnClick="btn_Delete_Click" PreCallBackFunction="function (){return confirm('确定删除?');}" runat="server" ToolTip='<%#Container.ItemIndex%>'></anthem:LinkButton>
                            </td>
                        </tr>
                    </ItemTemplate>
                    <FooterTemplate>
                        </table>
                    </FooterTemplate>
           </anthem:Repeater>
           <table width="90%" cellpadding="5" bgcolor="#e7ecce" border="1">
           <tr>
                <td align="center" colspan="2">
            <anthem:Label ID="Txt_TableTitle" runat="server" AutoUpdateAfterCallBack="true" Text="添加新项"></anthem:Label>
            <anthem:HiddenField ID="Txt_ItemIndex" runat="server" AutoUpdateAfterCallBack="true" />
                </td>
           </tr>
            <tr>
                <td align="right">
                    标题:&nbsp;
                </td>
                <td align="left">
                    <anthem:TextBox ID="Txt_title" runat="server" AutoUpdateAfterCallBack="true" Width="301px"></anthem:TextBox></td>
            </tr>
            <tr>
                <td align="right">
                    地址:</td>
                <td align="left">
                    <anthem:TextBox ID="Txt_url" runat="server" AutoUpdateAfterCallBack="true" Width="301px"></anthem:TextBox></td>
            </tr>
            <tr>
                <td align="right">
                    图片地址</td>
                <td align="left">
                    <anthem:TextBox ID="Txt_name" runat="server" Width="303px" AutoUpdateAfterCallBack="true"></anthem:TextBox></td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <anthem:Button ID="Btn_Submit" runat="server" Text=" 确 定 " CssClass="button" OnClick="Btn_Submit_Click" AutoUpdateAfterCallBack="true" />
                    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                    &nbsp; &nbsp;
                    <anthem:Button ID="BtnBack" runat="server" Text=" 取 消 " CssClass="button" OnClick="BtnBack_Click" /></td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

然后贴C# code
使用的是Anthem控件,不使用Anthem控件的朋友可以使用常规控件,不影响效果
C# 的Code
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.IO;

namespace test
{
    public partial class shopWindowMar : System.Web.UI.Page
    {
        private static string ImgUrl = "/adv_pic";
        private static string XmlUrl = "/xml/TheXml.xml";
        private static DataSet ds =  new DataSet();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ReadXmlInfo();//读取XML文件并绑定到Repeater
            }
        }

//读取XML文件并绑定到Repeater
        public void ReadXmlInfo()
        {
            ds.Tables.Clear();
            ds.ReadXml(Server.MapPath(XmlUrl));
            Repeater1.DataSource = ds.Tables[0].DefaultView;
            Repeater1.DataBind();
        }
        //从ds数据源重写XML文件
        public void WriteXMLInfo()
        {
            ds.WriteXml(Server.MapPath(XmlUrl));
        }
        //删除某节点
        protected void btn_Delete_Click(object sender, EventArgs e)
        {
            Anthem.LinkButton aButton = sender as Anthem.LinkButton;
            ds.Tables[0].Rows.RemoveAt(int.Parse(aButton.ToolTip.ToString()));
            WriteXMLInfo();
            ReadXmlInfo();
        }
        //修改某节点,初始化修改表单数据
        protected void btn_Edit_Click(object sender, EventArgs e)
        {
            Anthem.LinkButton aButton = sender as Anthem.LinkButton;
            int ItemIndex = int.Parse(aButton.ToolTip.ToString());
            Txt_TableTitle.Text = "修改现有第" + ItemIndex.ToString() + "个项目";
            Btn_Submit.Text = " 修 改 ";
            Txt_title.Text = ds.Tables[0].Rows[ItemIndex]["title"].ToString();
            Txt_name.Text = ds.Tables[0].Rows[ItemIndex]["name"].ToString();
            Txt_url.Text = ds.Tables[0].Rows[ItemIndex]["url"].ToString();
            Txt_ItemIndex.Value = ItemIndex.ToString();
        }
        //提交表单内容,进行新增或修改
        protected void Btn_Submit_Click(object sender, EventArgs e)
        {
            if (Txt_ItemIndex.Value.ToString() != "")
            {
                int EditIndex = int.Parse(Txt_ItemIndex.Value.ToString());
                ds.Tables[0].Rows[EditIndex]["name"] = Txt_name.Text.ToString();
                ds.Tables[0].Rows[EditIndex]["title"] = Txt_title.Text.ToString();
                ds.Tables[0].Rows[EditIndex]["url"] = Txt_url.Text.ToString();
            }
            else
            {
                DataRow dr = ds.Tables[0].NewRow();
                dr["name"] = Txt_name.Text.ToString();
                dr["title"] = Txt_title.Text.ToString();
                dr["url"] = Txt_url.Text.ToString();
                ds.Tables[0].Rows.Add(dr);
            }
            WriteXMLInfo();
            ReadXmlInfo();
            initTxtTable();
        }
        //取消修改按钮事件
        protected void BtnBack_Click(object sender, EventArgs e)
        {
            initTxtTable();
        }
        //重置表单内容
        public void initTxtTable()
        {
            Txt_url.Text = "";
            Txt_title.Text = "";
            Txt_name.Text = "";
            Txt_ItemIndex.Value = "";
            Txt_TableTitle.Text = "添加新项";
            Btn_Submit.Text = " 添 加 ";
        }
    }
}

转载于:https://blog.51cto.com/mixangel/128731

Repeater、GridView等 操作XML相关推荐

  1. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  2. ADO.NET系列之操作XML

    如题,我们保存数据的方式有很多种.在ASP.NET中,可以通过js赋值隐藏域的方式,也可以通过ViewState,Session这样的内置对象,还可以通过数据库的形式.现在经常用到的就是XML了,它的 ...

  3. 使用Dom4j操作XML数据

    --------------siwuxie095 dom4j 是一个非常优秀的 Java XML 的 API, 用来读写 XML 文件 和操作 XML 数据 特点:性能优异.功能强大.极端易用 dom ...

  4. 在C#.net中如何操作XML

    在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...

  5. ActionScript 3操作XML 详解

    AS3引入了E4X ,它是根据ECMAScript标准处理XML 数据的全新机制.这使得程序员在程序中无缝地操作XML.在AS3中可以使用XML字面值将XML数据直接写入代码,该字面值将被自动解析. ...

  6. 我错了,有个叫 SelectSingleNode 的可以操作 xml

    我错了,有个叫 SelectSingleNode 的可以操作 xml http://blog.csdn.net/wf520pb/article/details/2644549 ------------ ...

  7. android xml文件操作类,android操作xml

    android操作xml封装后的类,包括创建xml和读xml. public class XmlParserUtil { //创建xml文件 public static void createXmlF ...

  8. c#操作xml实例 2009-03-13 20:00

    在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...

  9. C#操作XML总结1

    C#操作XML总结1 网上很多C#操作XML的文章,但是都是东拼西凑,把简单的问题复杂化,不参考罢了.如若照搬硬套,不但达不到目标,反而浪费时间.原本以前做过操作XML的程序,但是忘了,所以今天下午就 ...

最新文章

  1. 未来5年网络安全支出将达到1万亿
  2. UITextView 用法小结
  3. C# 中 ConcurrentDictionary 一定线程安全吗?
  4. java 类的实例化没有属性值,java – JsonMappingException:无法实例化类型的值没有single-long-arg构造函数/工厂方法...
  5. linux的文本,Linux文本处理
  6. python编程可以做什么菜_Python 编程! 我是菜菜菜鸟 大家帮帮忙
  7. 两台电脑怎么共享_怎么在电脑上创建共享文件(必须是在同一个网段)
  8. scanf函数的读取
  9. java excel 2007兼容包_Microsoft Office 2007兼容包
  10. 期末速通主成分分析(PCA)
  11. R语言画图——添加数学表达式和R2
  12. Roslyn 静态分析
  13. 常见Android智能手机通信录导入方法
  14. Unity3D简单换装系统
  15. 2015年第4本(英文第3本):Godfather教父
  16. ubuntu下创建手机可用的热点wifi
  17. win7桌面计算机丢失,windows7电脑系统文件丢失怎么办
  18. react项目实战五 个人中心页面
  19. 达梦数据库常用sql
  20. ORA-03113和ORA-00204问题处理

热门文章

  1. ArrayList add(int index,E element)
  2. UIScrollView的代理方法(delegate)
  3. Lazy Load, 延迟加载图片的 jQuery 插件
  4. window mobile 5.0截获来电
  5. springboot 定时器_基于SpringCloud?+?SpringBoot的 SaaS型微服务脚手架源码分享
  6. vs debug 模式生成的exe 另一台电脑_C++利用spdlog生成日志
  7. java biginteger使用_java中的BigInteger的基本用法 | 学步园
  8. 【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程
  9. 猜想串scan的order
  10. 【Android工具】远程登录会话工具免费好用的SSH客户端——JuiceSSH