原文发布时间为: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. 120. Triangle 以及一个多维vector如何初始化

    1.刚开始result的初始化写的是vector<vector<int>> result,然后再去对result[0][0] = triangle[0][0]赋值,一直报错.老 ...

  2. CPP-基础:内部函数应该在当前源文件中说明和定义

    static函数与普通函数作用域不同,仅在本文件.只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义.对于可在当前源文件以外使用的函数,应该在一个头文件 ...

  3. Django-C003-视图

    此文章完成度[5%]留着以后忘记的回顾.多写多练多思考,我会努力写出有意思的demo,如果知识点有错误.误导,欢迎大家在评论处写下你的感想或者纠错. 在这个章节中,我们也一样需要练习过往已经掌握的技能 ...

  4. Java中的线程--多线程面试题

    到这里,基本上线程的并发中的知识点都是学到了,到了最后,还有三道面试题,从面试题中学习更加的加深一下,多线程中的知识点,如何在实际的问题中来解决多线程的问题,可以更好的从实际出发 一.面试题1 面试题 ...

  5. Java中的线程--线程的互斥与同步通信

    Java中的线程之前也提到过,但是还是想再详细的学习一下,跟着张孝祥老师,系统的再学习一下. 一.线程中的互斥 线程安全中的问题解释:线程安全问题可以用银行中的转账 例题描述: 线程A与线程B分别访问 ...

  6. vue 封装组件上传img

    var _uploadTemplate = '<div>'+ '<input type="file" name="file" v-on:cha ...

  7. tkinter学习-布局管理器

    阅读目录 pack 是按照添加顺序排列的组件 grid  是按照行/列形式排序的组件 place 允许程序员指定组件的大小和位置 pack: 说明:适用于少量的简单的组件的排列 fill:这个选项是告 ...

  8. CentOS6、7安装MySQL5.7全教程

    CentOS6.7安装MySQL5.7全教程 做开发总得用到数据吧,Linux作为服务器,总得有一个数据库来存储测试用的数据,所以呢,这里附上CentOS6.7安装MySQL5.7的教程喔~ 用到的工 ...

  9. centos7.2快速搭建LAMP平台

    #查看linux系统版本信息 cat /etc/redhat-release 以上是操作系统的所有信息,补充下内核信息参数介绍: 3.10.0-514.26.2.el7.x86_64 3表示主版本号, ...

  10. 【curl】【php】curl报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法

    CURLE_SSL_CACERT_BADFILE (77) - 读取 SSL CA 证书时遇到问题(可能是路径错误或访问权限问题) 在微信接口相关开发时容易出现此问题 这一般是因为服务更新了相关的软件 ...