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

本文介绍了一个基于XML和ASP.NET的广告轮播管理系统,利用DataGrid实现了广告信息的增删改查功能,并通过AdRotator控件展示了广告轮播效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过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"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值