基于XML的ASP.NET广告管理系统

通过DataGrid控件基本实现了 添加 修改 删除 功能,绑定XML应用ASP.NET广告控件,实现了多个广告轮播,出现频率按写入概率实现。
服务器端代码:

public class ADXml : Page {
    public string XmlPath = "Ad.xml";
    public DataSet Ds;
    public XmlDocument XmlDoc;
    public DataGrid XmlGrid;
    public TextBox TextImageUrl,TextNavigateUrl,TextAlternateText,TextKeyword,TextImpressions;
    public Button ButtonAdd;
    public Panel PanelAddXml;

    public void Page_Load(Object sender,EventArgs E){
      try {
    if (!IsPostBack){
      GridBind();
    }
      }
      catch (System.Exception e){
        e.ToString();
      }     
    }

    public void GridBind(){
      try {
      Ds= new DataSet();
      FileStream Fs = new FileStream(Server.MapPath(XmlPath),FileMode.Open,FileAccess.Read,FileShare.ReadWrite) ;
      Ds.ReadXml(Fs);
      Fs.Close();
      Trace.Warn("广告管理系统",Convert.ToString(Ds.Tables[0].Rows.Count));

      XmlGrid.DataSource=Ds.Tables[0].DefaultView;
      XmlGrid.DataBind();
      }
      catch (Exception E) {
        Response.Write("<font color=#FF0000>"+E.ToString()+"</font>") ;
      }
    }

    public void AddXml(Object sender,EventArgs E){
      string ImageUrl = TextImageUrl.Text;
      string NavigateUrl = TextNavigateUrl.Text;
      string AlternateText = TextAlternateText.Text;
      string Keyword = TextKeyword.Text;
      string Impressions = TextImpressions.Text;

      XmlDoc = new XmlDocument();    
      XmlDoc.Load(Server.MapPath(XmlPath));

      int ID = Int32.Parse(XmlDoc.FirstChild.LastChild.FirstChild.InnerText) + 1;

      XmlNode XNode = XmlDoc.SelectSingleNode("Advertisements");//查找<bookstore>
      XmlElement XElement = XmlDoc.CreateElement("Ad");//创建一个节点
      XmlElement XEID = XmlDoc.CreateElement("ID");//广告ID
      XEID.InnerText = ID.ToString();//设置文本节点
      XElement.AppendChild(XEID);//添加到<Ad>节点中
      XmlElement XEImageUrl = XmlDoc.CreateElement("ImageUrl");//广告图片网址
      XEImageUrl.InnerText = ImageUrl;
      XElement.AppendChild(XEImageUrl);
      XmlElement XENavigateUrl = XmlDoc.CreateElement("NavigateUrl");//图片导向跳转网址
      XENavigateUrl.InnerText = NavigateUrl;
      XElement.AppendChild(XENavigateUrl);
      XmlElement XEAlternateText = XmlDoc.CreateElement("AlternateText");//替代图片的文字
      XEAlternateText.InnerText = AlternateText;
      XElement.AppendChild(XEAlternateText);
      XmlElement XEKeyword = XmlDoc.CreateElement("Keyword");//广告分类关键字
      XEKeyword.InnerText = Keyword;
      XElement.AppendChild(XEKeyword);
      XmlElement XEImpressions = XmlDoc.CreateElement("Impressions");//广告轮换概率
      XEImpressions.InnerText = Impressions;
      XElement.AppendChild(XEImpressions);
 
      XNode.AppendChild(XElement);//添加到<bookstore>节点中
      XmlDoc.Save(Server.MapPath(XmlPath));

     Response.Write("<script>alert('广告信息添加成功!');location.href = 'admanage.aspx';<" + "/script>");
    }

    public void UpdateXml(Object sender,DataGridCommandEventArgs E){
      int ID = Convert.ToInt32(XmlGrid.DataKeys[E.Item.ItemIndex]);

      string ImageUrl =((TextBox)E.Item.FindControl("Edit_ImageUrl")).Text;
      string NavigateUrl =((TextBox)E.Item.FindControl("Edit_NavigateUrl")).Text;
      string AlternateText =((TextBox)E.Item.FindControl("Edit_AlternateText")).Text;
      string Keyword =((TextBox)E.Item.FindControl("Edit_Keyword")).Text;
      string Impressions =((TextBox)E.Item.FindControl("Edit_Impressions")).Text;

      XmlDoc = new XmlDocument(); //定义一个XmlDocument对象
      XmlDoc.Load(Server.MapPath(XmlPath));

      XmlDoc.SelectSingleNode("//Ad[ID='"+ ID +"']").ChildNodes.Item(1).InnerText = ImageUrl;
      XmlDoc.SelectSingleNode("//Ad[ID='"+ ID +"']").ChildNodes.Item(2).InnerText = NavigateUrl;
      XmlDoc.SelectSingleNode("//Ad[ID='"+ ID +"']").ChildNodes.Item(3).InnerText = AlternateText;
      XmlDoc.SelectSingleNode("//Ad[ID='"+ ID +"']").ChildNodes.Item(4).InnerText = Keyword;
      XmlDoc.SelectSingleNode("//Ad[ID='"+ ID +"']").ChildNodes.Item(5).InnerText = Impressions;
      XmlDoc.Save(Server.MapPath(XmlPath));
      Response.Write("<script>alert('所选信息更新成功!');location.href = 'admanage.aspx';<" + "/script>");
    }

    public void RemoveXml(Object sender,DataGridCommandEventArgs E){
      int ID = Convert.ToInt32(XmlGrid.DataKeys[E.Item.ItemIndex]);
      XmlDoc = new XmlDocument(); //定义一个XmlDocument对象
      XmlDoc.Load(Server.MapPath(XmlPath));

      XmlDoc.DocumentElement.RemoveChild (XmlDoc.SelectSingleNode("//Ad[ID='"+ ID +"']"));  //删除所选ID的Ad节点下的所有节点
      XmlDoc.Save(Server.MapPath(XmlPath));
      Response.Write("<script>alert('所选信息删除成功!');location.href = 'admanage.aspx';<" + "/script>");
    }

    public void GridCancel(Object sender, DataGridCommandEventArgs E){
      XmlGrid.EditItemIndex = -1;
      GridBind();
    }

    public void GridEdit(Object sender, DataGridCommandEventArgs E){
      XmlGrid.EditItemIndex = E.Item.ItemIndex;
      GridBind();  
    }

    public void AddAd(Object sender, EventArgs E){
      XmlGrid.Visible = false;
      ButtonAdd.Visible = false;
      PanelAddXml.Visible = true;
    }

  }
web aspx代码:
<%@ Page Language = "C#" Inherits = "TBR.ADXml"%>
<html>
<head>
<title>基于XML的ASP.NET广告轮播管理系统</title>
<link href="../Images/style.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style1 {color: #FF0000}
.style2 {color: #FFFFFF}
-->
</style>
</head>
<body bgcolor=#ffffff>
<center>
<asp:AdRotator
 id="AdRotator1"
 AdvertisementFile="ad.xml"
 BorderColor="red"
 BorderWidth="1"
 Target="_blank"
 Height="120"
 KeywordFilter="1"
 runat="server"/>
<br><br>
<form method="post" runat="server">
<asp:DataGrid id="XmlGrid"
HorizontalAlign="Center"
runat="server"
AllowPaging="false"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#DDDDDD"
DataKeyField="ID"
OnEditCommand="GridEdit"
OnUpdateCommand="UpdateXml"
OnCancelCommand="GridCancel"
OnDeleteCommand="RemoveXml"
AutoGenerateColumns="False">
<columns>
<asp:editcommandcolumn
 EditText="修改"
 CancelText="取消"
 UpdateText="保存"
 ItemStyle-Wrap="false"
 ButtonType="PushButton"
 HeaderText="操作"/>
      <asp:buttonColumn HeaderText="操作"  Text="删除" CommandName="Delete" ButtonType="PushButton"/>
      <asp:boundcolumn HeaderText="广告编号" ReadOnly="true" HeaderStyle-Width="60" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" DataField="ID"/>
      <asp:TemplateColumn HeaderStyle-Width="160" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" HeaderText="图片地址" SortExpression="ImageUrl">
        <ItemTemplate>
          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>'/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox runat="server" id="Edit_ImageUrl" Text='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>'/>
          <asp:requiredfieldvalidator id="ValEdit_ImageUrl" ControlToValidate="Edit_ImageUrl" runat="server">*
          </asp:requiredfieldvalidator>
        </EditItemTemplate>
      </asp:TemplateColumn>
      <asp:TemplateColumn HeaderStyle-Width="160" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" HeaderText="广告地址" SortExpression="NavigateUrl">
        <ItemTemplate>
          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NavigateUrl") %>'/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox runat="server" id="Edit_NavigateUrl" Text='<%# DataBinder.Eval(Container.DataItem, "NavigateUrl") %>'/>
          <asp:requiredfieldvalidator id="ValEdit_NavigateUrl" ControlToValidate="Edit_NavigateUrl" runat="server">*
          </asp:requiredfieldvalidator>
        </EditItemTemplate>
      </asp:TemplateColumn>
      <asp:TemplateColumn HeaderStyle-Width="160" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" HeaderText="图片替代文字" SortExpression="AlternateText">
        <ItemTemplate>
          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "AlternateText") %>'/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox runat="server" id="Edit_AlternateText" Text='<%# DataBinder.Eval(Container.DataItem, "AlternateText") %>'/>
          <asp:requiredfieldvalidator id="ValEdit_AlternateText" ControlToValidate="Edit_AlternateText" runat="server">*
          </asp:requiredfieldvalidator>
        </EditItemTemplate>
      </asp:TemplateColumn>
      <asp:TemplateColumn HeaderStyle-Width="60" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" HeaderText="分类关键字" SortExpression="Keyword">
        <ItemTemplate>
          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Keyword") %>'/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox runat="server" id="Edit_Keyword" Text='<%# DataBinder.Eval(Container.DataItem, "Keyword") %>'/>
          <asp:requiredfieldvalidator id="ValEdit_Keyword" ControlToValidate="Edit_Keyword" runat="server">*
          </asp:requiredfieldvalidator>
        </EditItemTemplate>
      </asp:TemplateColumn>
      <asp:TemplateColumn HeaderStyle-Width="60" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" HeaderText="轮播概率" SortExpression="Impressions">
        <ItemTemplate>
          <asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Impressions") %>'/>
        </ItemTemplate>
        <EditItemTemplate>
          <asp:TextBox runat="server" id="Edit_Impressions" Text='<%# DataBinder.Eval(Container.DataItem, "Impressions") %>'/>
          <asp:requiredfieldvalidator id="ValEdit_Impressions" ControlToValidate="Edit_Impressions" runat="server">*
          </asp:requiredfieldvalidator>
        </EditItemTemplate>
      </asp:TemplateColumn>
    </columns>
  </asp:DataGrid><br>
  <asp:Button ID="ButtonAdd" BackColor="#CCCCCC" BorderWidth="1" text="添加新的广告连接" runat="server" OnClick="AddAd"/><br>
  <asp:Panel ID = "PanelAddXml" runat= "server" visible = "false">
    <table width="531" align="center" cellpadding="0" cellspacing="0" style="border:1 solid #000000">
      <tr>
        <td height="36" colspan="3"><div align="center"><strong>基于XML的ASP.NET广告轮播管理系统</strong></div></td>
      </tr>
      <tr>
        <td width="25%" height="19"> <div align="center" class="jg1">广告图片网址:</div></td>
        <td width="71%" colspan="2"> <asp:TextBox Width="180" MaxLength="60" style="border:1 solid #000000" ID="TextImageUrl" runat="server"/>
          <asp:requiredfieldvalidator id="ValImageUrl" ControlToValidate="TextImageUrl" runat="server">*
          </asp:requiredfieldvalidator>
          <span class="style1">请填写,如:../images/music.gif</span></td>
      </tr>
      <tr>
        <td height="20"> <div align="center" class="jg1">广告导向网址:</div></td>
        <td colspan="2"><asp:textbox Width="180" MaxLength="60" style="border:1 solid #000000" ID="TextNavigateUrl" runat="server"/>
          <asp:requiredfieldvalidator id="ValNavigateUrl" ControlToValidate="TextNavigateUrl" runat="server">*
          </asp:requiredfieldvalidator>
          <span class="style1">请填写,如:http://www.TBR.com</span></td>
      </tr>
      <tr>
        <td height="19">
          <div align="center" class="jg1">替代图片文字:</div></td>
        <td colspan="2"><asp:textbox Width="180" MaxLength="60" style="border:1 solid #000000" ID="TextAlternateText" runat="server"/>     
            <asp:requiredfieldvalidator id="ValAlternateText" ControlToValidate="TextAlternateText" runat="server">* </asp:requiredfieldvalidator>
            <span class="style1">请填写,如:TBR网站</span></td>
      </tr>
      <tr>
        <td height="19">
          <div align="center" class="jg1">广告分类关键字:</div></td>
        <td colspan="2"><asp:textbox Width="180" MaxLength="10" style="border:1 solid #000000" ID="TextKeyword" runat="server"/>     
            <asp:requiredfieldvalidator id="ValKeyword" ControlToValidate="TextKeyword" runat="server">* </asp:requiredfieldvalidator>
            <span class="style1">请填写1或者2,如:2</span></td>
      </tr>
      <tr>
        <td height="19"> <div align="center" class="jg1">广告轮播概率:</div></td>
        <td colspan="2"><asp:textbox Width="180" MaxLength="10" style="border:1 solid #000000" ID="TextImpressions" runat="server"/>
          <asp:requiredfieldvalidator id="ValImpressions" ControlToValidate="TextImpressions" runat="server">*
          </asp:requiredfieldvalidator>
          <span class="style1">请填写数字,如:10</span></td>
      </tr>
      <tr>
        <td height="42" colspan="3"> 
            <div align="center">
    <asp:button ID="button2" BackColor="#CCCCCC" BorderWidth="1" text="提交" runat="server" OnClick="AddXml"/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="reset" style="border:1 solid #000000" value="取消" name="Retn1">
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" onClick="javascript:return location.href='admanage.aspx'" style="border:1 solid #000000" value="修改删除广告连接" name="Retn1">
</div></td>
      </tr>
      <tr>
        <td colspan="3"></td>
      </tr>
    </table>
    </asp:Panel>
    <br><br><br><br>
  <table width="100%"  border="0">
    <tr>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><div align="center"> 请使用IE 5.0以上版本浏览? 2004-2005 TBR.COM 版权所有<br>
        未经TBR网授权禁止链接、复制或建立镜像<br>
        <span class="style2">Powered By Terry.L </span></div></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
  </form>
</center>
</body>
</html>
ad.xml
<Advertisements>
  <Ad>
    <ID>1</ID>
    <ImageUrl>../images/music.gif</ImageUrl>
    <NavigateUrl>http://www.TBR.com</NavigateUrl>
    <AlternateText>Comet Information - Big5 Version</AlternateText>
    <Keyword>1</Keyword>
    <Impressions>30</Impressions>
  </Ad>
  <Ad>
    <ID>2</ID>
    <ImageUrl>../images/music.gif</ImageUrl>
    <NavigateUrl>http://www.TBR.com</NavigateUrl>
    <AlternateText>Comet Information - Big5 Version</AlternateText>
    <Keyword>1</Keyword>
    <Impressions>30</Impressions>
  </Ad>
  <Ad>
    <ID>3</ID>
    <ImageUrl>../images/flash.jpg</ImageUrl>
    <NavigateUrl>http://www.TBR.com</NavigateUrl>
    <AlternateText>Comet Information - Big5 Version</AlternateText>
    <Keyword>1</Keyword>
    <Impressions>40</Impressions>
  </Ad>
</Advertisements>
ad.aspx
<asp:AdRotator
 id="AdRotator1"
 AdvertisementFile="ad.xml"
 BorderColor="#333333"
 BorderWidth="1"
 Target="_blank"
 Width="440"
 Height="70"
 KeywordFilter="1"
 runat="server"/>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ITFLY8/archive/2007/03/22/1538064.aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值