现在的位置: 首页 > 综合 > 正文

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

2013年09月01日 ⁄ 综合 ⁄ 共 5825字 ⁄ 字号 评论关闭
通过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>

抱歉!评论已关闭.