通过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"/>
<input type="reset" style="border:1 solid #000000" value="取消" name="Retn1">
<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> </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> </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"/>
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/ITFLY8/archive/2007/03/22/1538064.aspx