基于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 " />
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值