原文发布时间为:2008-08-05 —— 来源于本人的百度文章 [由搬家工具导入]

【用了datalist控件,datalist控件自己学会,主要知道其他按钮COMMANDNAME属性应该改为edit,update,delete】

using System;
using System.Data;
using System.Configuration;
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.Xml.XPath;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            fill();
        }

    }

    protected void fill()
    {
        DataSet ds=new DataSet();
        ds.ReadXml(Server.MapPath("~/App_Data/ad.xml"));
        DataList1.DataSource=ds.Tables[0].DefaultView;
        DataList1.DataBind();

        Session["dst"]=ds;
    }

    protected void Button1_Click(object sender, EventArgs e)
    {

    }
    protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = e.Item.ItemIndex;
        fill();
    }
    protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        DataSet ds = (DataSet)Session["dst"];
        ds.Tables[0].Rows[e.Item.ItemIndex]["ImageUrl"] = ((TextBox)e.Item.FindControl("TextBox2")).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["NavigateUrl"] = ((TextBox)e.Item.FindControl("TextBox5")).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["AlternateText"] = ((TextBox)e.Item.FindControl("TextBox1")).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["Keyword"] = ((TextBox)e.Item.FindControl("TextBox3")).Text.ToString();
        ds.Tables[0].Rows[e.Item.ItemIndex]["Impressions"] = ((TextBox)e.Item.FindControl("TextBox4")).Text.ToString();

        Session["dst"] = ds;
       ds.WriteXml(Server.MapPath("~/App_Data/ad.xml"));

        DataList1.EditItemIndex=-1;
        fill();
    }
    protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = -1;
        fill();
    }
    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
        DataSet ds = (DataSet)Session["dst"];
        ds.Tables[0].Rows.Remove(ds.Tables[0].Rows[e.Item.ItemIndex]);
        Session["dst"] = ds;
        ds.WriteXml(Server.MapPath("~/App_Data/ad.xml"));

        fill();
    }
    protected void Button5_Click(object sender, EventArgs e)
    {
        DataSet ds = (DataSet)Session["dst"];
        DataRow dr = ds.Tables[0].NewRow();

        dr["ImageUrl"] = url.Text.ToString();
        dr["NavigateUrl"] = ng.Text.ToString();
        dr["AlternateText"] = na.Text.ToString();
        dr["Keyword"] = kw.Text.ToString();
        dr["Impressions"] = qz.Text.ToString();

        ds.Tables[0].Rows.Add(dr);
        Session["dst"] = ds;

        ds.WriteXml(Server.MapPath("~/App_Data/ad.xml"));
        fill();
        DIV1.Visible = false;
        Panel1.Visible = false;
    }
    protected void Button7_Click(object sender, EventArgs e)
    {
        Panel1.Visible = true;
        na.Focus();
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        DIV1.Visible = true;
        ng.Focus();
    }
    protected void Button6_Click(object sender, EventArgs e)
    {
        string name = fu.FileName.ToString();
        //int size = Convert.ToInt32(fu.PostedFile.ContentLength);
        string type1 = fu.PostedFile.ContentType.ToString();
        string type = type1.Substring(0, 5);

        if (type == "image")
        {
            fu.PostedFile.SaveAs(Server.MapPath("~/img/") + name);
            img.ImageUrl = Server.MapPath("~/img/") + name;
            url.Text = Server.MapPath("~/img/") + name;
        }
        else
        {
            url.Text = "不是允许的类型";
        }
    }
    protected void Button8_Click(object sender, EventArgs e)
    {
        Response.Redirect("Default2.aspx");
    }
}

----------------------------------------------

ad.xml的内容:

<?xml version="1.0" standalone="yes"?>
<Advertisements>
<Ad>
    <ImageUrl>~/img/logo.gif</ImageUrl>
    <NavigateUrl>http://www.hc115.com</NavigateUrl>
    <AlternateText>洪川医药</AlternateText>
    <Keyword>医院评价</Keyword>
    <Impressions>50</Impressions>
</Ad>
<Ad>
    <ImageUrl>http://www.baidu.com/img/baidu_logo_rw_0808_hzl.gif</ImageUrl>
    <NavigateUrl>http://www.baidu.com</NavigateUrl>
    <AlternateText>百度</AlternateText>
    <Keyword>百度</Keyword>
    <Impressions>60</Impressions>
</Ad>
<Ad>
    <ImageUrl>F:\wuwenjie\net8\img\iask.gif</ImageUrl>
    <NavigateUrl>http://www.iask.com</NavigateUrl>
    <AlternateText>爱问</AlternateText>
    <Keyword>爱问搜</Keyword>
    <Impressions>30</Impressions>
</Ad>
</Advertisements>

net8:XML的读写操作【广告控件的XML文件实例】的更多相关文章

  1. 使用ASP.NET广告控件的XML语言创建广告链接--ASP.NET

    1.AdRotator广告控件的所有属性都是可选的,XML文件中可以包含如下表所示的属性(XML文件的广告属性).   属性 说明 ImageUrl 要显示的图像的URL  NavigateUrl 单 ...

  2. C#多线程操作界面控件的解决方案(转)

    C#中利用委托实现多线程跨线程操作 - 张小鱼 2010-10-22 08:38 在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常.这是微软为了 ...

  3. [WinForm]WinForm跨线程UI操作常用控件类大全

    前言 在C#开发的WinForm窗体程序开发的时候,经常会使用多线程处理一些比较耗时之类的操作.不过会有一个问题:就是涉及到跨线程操作UI元素. 相信才开始接触的人一定会遇上这个问题. 为了解决这个问 ...

  4. 扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常

    在做界面程序时,常常需要一些数据类,界面元素通过绑定等方式显示出数据,然而由于UI线程不是线程安全的,一般都需要通过Invoke等方式来调用界面控件.但对于数据绑定bindingList而言,没法响应 ...

  5. 完全使用一组 DSL 来操作 Grid 控件

    最近尝试了一下将 XtraGrid 的初始化工作封装成内部 DSL,例如一个普通的基础数据的增删改查操作的代码会像下面这样: public partial class UserForm : XtraF ...

  6. Jquery 操作Html 控件 CheckBox、Radio、Select 控件 【转】http://www.cnblogs.com/lxblog/archive/2013/01/09/2853056.html

    Jquery 操作Html 控件 CheckBox.Radio.Select 控件   在使用 Javascript 编写前台脚本的时候,经常会操作 Html 控件,比如 checkbox.radio ...

  7. Jquery 操作Html 控件 CheckBox、Radio、Select 控件

    在使用 Javascript 编写前台脚本的时候,经常会操作 Html 控件,比如 checkbox.radio.select,用 Jquery 库操作其他会方便很多,下面用Jq对这些控件的操作进行一 ...

  8. appuim操作webview控件

    1.操作webview控件,在uiautomator中如下图,能定位的只有最外层的内容.就一个webview控件,查找不到里面内容 1.使用driver.getContext(),获取是否是webvi ...

  9. webdriver高级应用- 操作日期控件

    1. 通过点击的方式操作日期控件 #encoding=utf-8 from selenium import webdriver import unittest, time, traceback fro ...

随机推荐

  1. UVA - 1658 Admiral (最小费用最大流)

    最短路对应费用,路径数量对应流量.为限制点经过次数,拆点为边.跑一次流量为2的最小费用最大流. 最小费用最大流和最大流EK算法是十分相似的,只是把找增广路的部分换成了求费用的最短路. #include ...

  2. 关键字: on

    关键字: on 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成 ...

  3. Heacher互助平台 α版本冲刺

    课程属性 作业课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ 作业链接 https://edu.cnblogs.co ...

  4. winhex 中磁盘大小与偏移

    下图为c盘(活动分区).上方base offset为相对于整个硬盘的字节偏移量.partition 1中信息包括c盘开始扇区,总扇区数.partition 2 信息为扩展分区开始扇区和扇区数.由 P1 ...

  5. maven项目在myeclipse中不出现Maven Dependencies 和maven标识的解决方法

    这种情况通常出现在 我们新加载了一个 maven的项目,但是myeclipse没识别到. 或者说 我们把该项目修改成了maven项目--------也就是说该项目 有了pom.xml 但是还没有mav ...

  6. _IO_FILE

    hctf2017的babyprintf解法是house of orange,深入学习了一下,牵扯出许多知识,这里先进行第一步:_IO_FILE结构 0x00 _IO_FILE glibc-2.2.1\ ...

  7. Luogu P3938 斐波那契

    Luogu P3938 斐波那契 第一眼看到这题,想到的是LCA,于是开始想怎么建树,倒是想出了\(n^{2}\)算法,看了下数据范围,果断放弃 想了想这数据范围,大的有点不正常,这让我想起了当年被小 ...

  8. webpack4.x加vue模板文件简单还原vue-cli

    1.首先 npm init -y 创建一个项目 2.安装vue npm install vue --save 3.然后安装webpack 注意如果全局没有还要安装全局的webpack和webpack- ...

  9. (60)zabbix网络发现介绍Network Discovery

    网络发现简介 网络发现有什么用?网络发现怎么配置? 我们带着这两个问题开始我们的网络发现之旅. 比如小明有100台服务器,不想一台台主机去添加,能不能让zabbix自动添加主机呢,当然可以,网络发现便 ...

  10. (42)zabbix使用IT services 了解服务器SLA整体情况

    什么是IT Services 服务器或者某项服务.业务的可用率,不懂技术的上级领导会过问最近服务器可用率如何.所有api的状况怎么样? 通常一些技术人员会说负载怎么样,哪些cpu使用率怎么样,硬盘使用 ...