原文发布时间为: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. vue 中 $set 的使用

    在我们使用vue进行开发的过程中,可能会遇到一种情况:当生成vue实例后,当再次给数据赋值时,有时候并不会自动更新到视图上去: <!DOCTYPE html> <html> & ...

  2. Vue-Quill-Editor 富文本编辑器的使用

    步骤如下: 1.下载Vue-Quill-Editor npm install vue-quill-editor --save 2.下载quill(Vue-Quill-Editor需要依赖) npm i ...

  3. _IO_FILE

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

  4. C#栈Stack的使用

    using System; using System.Collections.Generic; namespace CSharp栈 { class Program { static void Main ...

  5. 低性能3张图片轮播React组件

    import React from 'react'; import {getSwipeWay} from '../utils/swipe'; class Carousel extends React. ...

  6. 【JavaScript】两种常见JS面向对象写法

    基于构造函数 function Circle(r) { this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { ...

  7. UVa-101-木块问题

    这题用vector比较好写,我们设置对应的几个函数,然后进行相应的操作来简化代码,这样才不易出错. 对于输入和操作来说我们经分析之后,可以看到最后一个操作时最原始的操作也就是不需要还原任意一个堆任意高 ...

  8. sql server存储过程修改,存储到mysql笔记

    由于有些项目要迁移到mysql上,数据迁移用MySQLWorkbench就能很好的迁移,最难的是存储过程之类的. 下面是sql server存储过程和mysql存储过程的转化: SQL SERVER: ...

  9. centos配置本地yum源和光盘挂载

    说明:以centos6.5为例创建本地yun源,centos7的创建方法和centos6的是一样的. 创建挂载目录: mkdir /dvd 开机自动挂载光盘 echo /dev/cdrom   /dv ...

  10. Web安全XSS、CSRF和SQL注入

    SQL注入 SQL注入是以用户的输入作为sql语句的一部分,如后端接收到用户的请求数据后,不经过数据转义,就把数据拼接到SQL中执行,容易导致SQL的语义被篡改,即受到攻击了. 解决办法是对接收的数据 ...