<% @ Page Language="C#" ResponseEncoding="gb2312" %>
<% @ Import Namespace="System.Data" %>
<% @ Import Namespace="System.Xml" %>
<% @ Import Namespace="System.IO" %>
<Script Language="C#" Runat="Server">
DataSet ds; //定义公用的DataSet
DataView dv; //定义公用的DataView
string SortField;
string sPath;
public void Page_Load(Object src,EventArgs e)
{
if(State["adxml"]==null)
{
sPath = Server.MapPath(".") + "\\AdBanners\\ad_gb.xml";
ds = new DataSet();
ds.ReadXml(sPath);
State["adxml"] = ds;
}
else
{
ds = (DataSet)State["adxml"];
}
dv = ds.Tables[0].DefaultView;
dv.Sort = "ImageUrl";if(!Page.IsPostBack)
{
CreateTable();
}
}//捆绑Binder
public void CreateTable()
{dgXML.DataSource = dv;
dgXML.DataBind();
}//翻页时
public void dgXML_Changed(Object sender,DataGridPageChangedEventArgs e)
{
CreateTable();
}//删除
public void DelItem(Object sender,DataGridCommandEventArgs e)
{
if(((LinkButton)e.CommandSource).CommandName == "del") 
{
//首先取得当前更新页的行数与CurrentPageIndex
int CPI = (int)dgXML.CurrentPageIndex;
int EII = (int)e.Item.ItemIndex;
int row = CPI*5+EII; lb.Text = row.ToString();//删除
dv.Delete(row);dgXML.EditItemIndex = -1;
ds.WriteXml(sPath);CreateTable();
}
}//取消
public void dgXML_Cancel(Object sender,DataGridCommandEventArgs e)
{
dgXML.EditItemIndex = -1;
CreateTable();
}//编辑
public void dgXML_Edit(Object sender,DataGridCommandEventArgs e)
{
dgXML.EditItemIndex = (int)e.Item.ItemIndex;
CreateTable();
}//更新
public void dgXML_Update(Object sender, DataGridCommandEventArgs e)
{
try
{
//首先取得当前更新页的行数与CurrentPageIndex
int CPI = (int)dgXML.CurrentPageIndex;
int EII = (int)e.Item.ItemIndex;
int row = CPI*5+EII;
//lb.Text = row.ToString();//取得各项值string ImageUrl = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string NavigateUrl = ((TextBox)e.Item.Cells[3].Controls[0]).Text; 
string AlternateText = ((TextBox)e.Item.Cells[4].Controls[0]).Text;
string Keyword = ((TextBox)e.Item.Cells[5].Controls[0]).Text;
string Impressions = ((TextBox)e.Item.Cells[6].Controls[0]).Text;dv.Delete(row);
DataRow dr = ds.Tables[0].NewRow();
dr[0] = ImageUrl;
dr[1] = NavigateUrl;
dr[2] = AlternateText;
dr[3] = Keyword;
dr[4] = Impressions;
ds.Tables[0].Rows.Add(dr);
ds.WriteXml(sPath);
}
catch(Exception ee)
{
lb.Text = ee.ToString();
}dgXML.EditItemIndex = -1;
CreateTable();
}public void PanelShow(Object sender,EventArgs e)
{
AddItem.Visible = true;
}public void AddItem_Click(Object sender,EventArgs e)
{
DataRow dr = ds.Tables[0].NewRow();
dr[0] = mUrl.Text;
dr[1] = aUrl.Text;
dr[2] = mText.Text;
dr[3] = aKey.Text;
dr[4] = aTime.Text;
ds.Tables[0].Rows.Add(dr);
ds.WriteXml(sPath);
CreateTable();
AddItem.Visible=false;
}
</script>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:DataGrid id="dgXML" runat="server"
AllowPaging="True"
PageSize="10"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
PagerStyle-PrevPageText="前页"
PagerStyle-NextPageText="后页"
OnPageIndexChanged="dgXML_Changed"
OnEditCommand="dgXML_Edit"
OnCancelCommand="dgXML_Cancel"
OnUpdateCommand="dgXML_Update"
OnItemCommand="DelItem"
AutoGenerateColumns="false"
>
<property name="Columns">
<asp:ButtonColumn HeaderText="删除" Text="删除" CommandName="del" />
<asp:EditCommandColumn EditText="修改" CancelText="取消" UpdateText="更新" ItemStyle-Wrap="false" HeaderText="操作区" HeaderStyle-Wrap="false" />
<asp:BoundColumn HeaderText="图片地址(相对)" SortField="ImageUrl" DataField="ImageUrl" />
<asp:BoundColumn HeaderText="链接URL" SortField="NavigateUrl" DataField="NavigateUrl" />
<asp:BoundColumn HeaderText="图片说明" SortField="AlternateText" DataField="AlternateText" />
<asp:BoundColumn HeaderText="类别" SortField="Keyword" DataField="Keyword" />
<asp:BoundColumn HeaderText="显示时间" SortField="Impressions" DataField="Impressions" />
</property>
</asp:DataGrid>
<hr>
<asp:Button id="vi" Text="添加新项" OnClick="PanelShow" runat="server"/>
<br>
<asp:Panel id="AddItem" runat="server" Visible="false">
<table>
<tr Bgcolor="#aaaadd"><td colspan=2>添加新的广告页面</td></tr>
<tr>
<td>广告图片URL:</td>
<td><asp:TextBox id="mUrl" runat="server" Text="http://" /></td>
</tr>
<tr>
<td>广告链接地址:</td>
<td><asp:TextBox id="aUrl" runat="server" Text="http://" /></td>
</tr>
<tr>
<td>图片说明:</td>
<td><asp:TextBox id="mText" runat="server" /></td>
</tr>
<tr>
<td>广告所属类别:</td>
<td><asp:TextBox id="aKey" runat="server" /></td>
</tr>
<tr>
<td>显示时间</td>
<td><asp:TextBox id="aTime" runat="server" /></td>
</tr>
<tr><td>
<asp:Button id="submit" Text="提交" OnClick="AddItem_Click" runat="server" /></td></tr>
</table>
</asp:Panel>
<asp:Label id="lb" runat="server" />
</form>
</body>
</html>

解决方案 »

  1.   

    abigfrog(☆★千年精灵★☆) 老兄能不能说说怎么建立.xml文件
    上面例子重的
    sPath = Server.MapPath(".") + "\\AdBanners\\ad_gb.xml";
    ds = new DataSet();
    ds.ReadXml(sPath);
    State["adxml"] = ds;ad_gb.xml的代码能贴出来么??!!
      

  2.   

    主要是分布式计算 WEBSERVICE
      

  3.   

    以前分布式计算微软用DCOM技术,缺点很多,安全问题(防火墙)等等,现在亚,通过用XML文件来传送数据,比如你需要知道今天的股市情况,查询某股票情况,现在有一个站点提供 WEBSERVICE 服务,你就可以 调用他的查寻方法,他返回你一个结果的XML文件,就好像你在自己本地调用一样方便
      

  4.   

    抄袭挣分在XML发布之前,国际互联网的发展受到HTML如下几个问题的束缚:
    1) HTML无法描述数据内容,而这一点恰恰是数据检索、电子商务所必须的。
    2) HTML对数据表现的描述能力是十分不够的,如HTML还不能描述矢量图形、科学符号等对象,目前只能通过图象来表现这些对象。
    3) HTML实例置标语言的地位,完全不能适应对新标记需求的发展需要。
    XML的出现,使上述问题都得到很好的解决。XML带来的好处 (1)更有意义的搜索 
      数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数据都是不同的。有了XML,书就可以很容易以标准的方式按照作者、标题、ISBN序号或其他的标准分类。搜索书就变得十分方便。 (2)开发灵活的Web应用软件 
      数据一旦建立,XML能被发送到其他应用软件、对象或者中间层服务器做进一步地处理。或者它可以发送到桌面用浏览器浏览。XML和HTML、脚本、公共对象模式一起为灵活的三层Web应用软件的开发提供了所需的技术。 (4)不同来源数据的集成 
      现在搜索多样的不兼容的数据库实际上是不可能的。XML能够使不同来源的结构化的数据很容易的结合在一起。软件代理商可以在中间层的服务器上对从后端数据库和其他应用处来的数据进行集成。然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。 (5)多种应用得到的数据 
      XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从描述搜集的Web页到数据记录。同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。(6)本地计算和处理
      XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据。数据计算不需要回到服务器就能进行。分离使用者观看数据的界面,使用简单灵活开放的格式,可以给Web创建功能强大的应用软件,这些软件原来只能建立在高端数据库上。 (7)数据的多样显示 
      数据发到桌面后,能够用多种方式显示。通过以简单开放扩展的方式描述结果化的数据,XML补充了HTML,被广泛的用来描述使用者界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。CSS和XSL为数据的显示提供了公布的机制。 (8)粒状的更新 
      通过XML,数据可以粒状的更新。每当一部分数据变化后,不需要重发整个结构化的数据。变化的元素必须从服务器发送给客户,变化的数据不需要刷新整个使用者的界面就能够显示出来。目前,只要一条数据变化了,整一页都必须重建。这严重限制了服务器的升级性能。XML也允许加进其他数据,比如预测的温度。加入的信息能够流入存在的页面,不需要浏览器发一个新的页面。 (9)在Web上发布数据 
      由于XML是一个开放的基于文本的格式,它可以和HTML一样使用HTTP进行传送,不需要对现存的网络进行变化。(10)升级性 
      由于XML彻底把标识的概念同显示分开,处理者能够在结构化的数据中嵌套程序化的描述以表明如何显示数据。这是令人难以相信的强大的机制,使得客户计算机同使用者间的交互作用尽可能的减少了,同时减少了服务器的数据交换量和浏览器的响应时间。另外,XML使个人的数据只能通过更新的布告发生变化,减少了服务器的工作量,大大增强了服务器的升级性能。 (11)压缩性 
      XML压缩性能很好,因为用于描述数据结构的标签可以重复使用。XML数据是否要压缩要根据应用来定,还取决于服务器与客户间数据的传递量。XML能够使用HTTP1.1中的压缩标准。 (12)开放的标准 
      XML基于的标准是为Web进行过优化的。微软和其他一些公司以及W3C中的工作组正致力于确保XML的
      

  5.   

    的互用性,以及为开发人员、处理人员和不同系统和浏览器的使用者提供支持,并进一步发展XML的标准。 
      

  6.   

    下本书看吧
    http://7i24.com/download/aspnettype/netbook/aspnetxml.pdf