CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  XML/SOAP

WEB页面中,如何更新XML数据岛

楼主steven2000(大菜虫)2004-04-02 13:52:26 在 Web 开发 / XML/SOAP 提问

在页面中设置XML数据岛,作为table的数据源,table中每个td中有  
  <input   type=text>其DATAFLD设置为XML数据岛的字段域,我增加数据行输入数据后提交,发现服务器得到的XML数据岛内容是空的,怎么办 问题点数:100、回复次数:7Top

1 楼xzq686(★_瞬_★)回复于 2004-04-02 16:21:02 得分 20

数据岛就用于html的例子。  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;charset=gb2312">   <title>我是中国人</title>  
  </head>  
  <body>  
  <xml   id="II">  
  <我是中国人>  
  <姓名>孙继海</姓名>  
  <姓别>男</姓别>  
  <年龄>26</年龄>  
  </我是中国人>  
  </xml>  
  <center><h1>我是中国人</h1></center>  
  <!--  
  注意:下面table属性里的datasrc="#II"必须有,是数据岛的id  
  -->  
  <table   border="0"   datasrc="#II"   align="center"   width="443">  
  <tr>  
  <td   bgcolor="#99FF99">姓名:   <span   datafld="姓名"></span></td>  
  <td   bgcolor="#3399CC">姓别:   <span   datafld="姓别"></span></td>  
  <td   bgcolor="#CC99CC">年龄:   <span   datafld="年龄"></span></td>  
  </tr>  
  </table>  
  </body>  
  </html>Top

2 楼net_lover(【孟子E章】)回复于 2004-04-03 08:31:05 得分 0

不会的。你在前端输入的时候已经变了,你提交后必须进行保存【数据库或者xml】,然后重新转向到该页面Top

3 楼net_lover(【孟子E章】)回复于 2004-04-03 08:36:43 得分 10

http://www.ccw.com.cn/pub/ChFileSubmit.asp?tablename=TFileCcwNet&recordno=42608Top

4 楼oydj(东)回复于 2004-04-04 14:23:32 得分 10

http://www.cnsxml.com/blogview.asp?logID=155  
  《用XML数据岛解决用户界面问题   》Top

5 楼steven2000(大菜虫)回复于 2004-04-05 10:22:04 得分 0

可能行文不清楚  
          我的意思是如何把改变的数据岛内容随页面其他内容提交到服务器,也就是在服务器的Request中如何得到数据岛的数据Top

6 楼dullwolf(超级大笨狼之羊皮马甲)回复于 2004-07-04 03:53:53 得分 0

用xmlhttp提交,不要用form提交。Top

7 楼dullwolf(超级大笨狼之羊皮马甲)回复于 2004-07-04 03:59:11 得分 60

利用XMLHTTP优化数据传输  
   
  孟宪会      
  2002-10-21   14:32:21  
   
  --------------------------------------------------------------------------------  
     
   
  在Web应用中,我们经常会需要记录客户端的状态,如果浏览器支持Cookie的功能,这样很好办,但如果用户禁止了Cookie功能,该如何记录客户端的信息呢?当我们提交新录或修改的数据时,我们希望只提交录    
  入的数据信息而不提交与之无关的其它信息,利用XML数据岛和XMLHTTP可以轻松实现。一个比较理想的方法就是把INPUT和SELECT等控件绑定到XML数据岛,实际上,如果有更复杂的表单元素时,我们还可以利用XPATH进行处理,这样可以进行更加复杂的操作。利用XMLHTTP可以只提交数据信息,这样也可以减少网络流量。  
   
  下面就是简单的例子xmlhttpTest.htm:  
   
   
  <body>  
   
  <XML   id="xmlTest">  
   
  <?xml   version="1.0"?>  
   
  <root>  
   
  <Customer>  
   
  <customerid>00001</customerid>  
   
  <name>孟子E章</name>  
   
  <phone>13910309***</phone>  
   
  <address>北京市海淀区信息路</address>  
   
  <description><![CDATA[<html><body>支持html代码</body></html>]]></description>  
   
  </Customer>  
   
  </root>  
   
  </XML>  
   
  <script>  
   
  function   update()  
   
  {  
   
  var   oXmlHttp   =   new   ActiveXObject("Microsoft.XMLHTTP");  
   
  '这里换成你自己的ServerName和VirtualDir  
   
  oXmlHttp.Open("POST",   "http://mengxianhui/asp/update.asp",   false);  
   
  oXmlHttp.setRequestHeader("Content-Type","text/xml")  
   
  oXmlHttp.Send(xmlTest.xml);  
   
  if(oXmlHttp.status!="200")  
   
  {  
   
  alert("没有返回正确的数据类型。")  
   
  return   false  
   
  }  
   
  xmlTest.loadXML(oXmlHttp.responseXML.xml);  
   
  }  
   
  </script>  
   
   
  <table   align="center"   cellspacing="6"   style="font-size:11pt">  
   
  <FORM   NAME="frmTest">  
   
  <tr>  
   
  <td>客户名称:</td>  
   
  <td><INPUT   TYPE="text"   dataSrc="#xmlTest"   dataFld="name"   style="width:400px"></td>  
   
  </tr>  
   
  <tr>  
   
  <td>客户电话:</td>  
   
  <td><INPUT   TYPE="text"   dataSrc="#xmlTest"   dataFld="phone"   style="width:400px"></td>  
   
  </tr>  
   
  <tr>  
   
  <td>客户地址:</td>  
   
  <td><INPUT   TYPE="text"   dataSrc="#xmlTest"   dataFld="address"   style="width:200px"></td>  
   
  </tr>  
   
  <tr>  
   
  <td>客户简介:</td>  
   
  <td>  
   
  <TEXTAREA   dataSrc="#xmlTest"   dataFld="description"   rows="6"   style="width:400px"></TEXTAREA>  
   
  </td>  
   
  </tr>  
   
  <tr>  
   
  <td   colspan="2"   align="center">  
   
  <INPUT   TYPE="button"   onclick="update()"   VALUE="   确   定   "   style="background-color:#6F7EEF">  
   
  </td>  
   
  </tr>  
   
  </FORM>  
   
  </table>  
   
  </body>  
   
   
  这个HTML页面提供了一个数据岛来保存用户的信息,利用dataSrc和dataFld属性分别与Form表单元素进行绑定。XML数据岛将会实时反映出表单元素中数据的变化。通过点击“确定”按钮,将会调用update()函数,利用XMLHTTP把数据提交到服务器,同时利用XML数据岛的一个节点customerid来记录正在编辑的记录的状态。  
   
  下面就是简单的接收数据的代码update.asp:  
   
   
  <%  
   
  Dim   xmldom  
   
  Set   xmldom   =   Server.CreateObject("MSXML.DOMDocument")  
   
  Response.ContentType   =   "text/xml"  
   
  Response.CharSet   =   "GB2312"  
   
  xmldom.load   Request  
   
  '可以在这里进行处理,然后返回到客户端  
   
  Response.Write   "<?xml   version=""1.0""   encoding=""GB2312""?>"  
   
  Response.Write   xmldom.documentElement.xml  
   
  Set   xmldom   =   Nothing  
   
  %>  
   
   
  如果只是测试,可以利用下面的代码update2.asp  
   
   
  <%  
   
  Response.ContentType   =   "text/xml"  
   
  Response.CharSet   =   "GB2312"  
   
  Response.Write   "<?xml   version=""1.0""   encoding=""GB2312""?>"  
   
  Response.Write   "<root><Customer><customerid></customerid>"  
   
  Response.Write   "<name>net_lover</name><phone>010-817939**</phone>"  
   
  Response.Write   "<address>中国北京国际创业园</address>"  
   
  Response.Write   "<description><![CDATA[<html><body>这种方式也支持HTML啊^_^</body></html>]]></description>"  
   
  Response.Write   "</Customer></root>"  
   
  %>  
   
   
  一旦XML数据提交到服务器后,XML数据将保存到Request对象中,这样,我们可以把数据装载到XML   DOM对象,利用XMLDOM对象的方便性进行各种处理,比如保存到数据库等,然后把结果返回到客户端。  
   
  其实,最实用的时候是把提交上来的XML数据交给Microsoft   SQL   Server   2000   来处理,在Microsoft   SQL   Server   2000   中进行数据的更新。  
   
  下面是利用Microsoft   SQL   Server   2000   来处理数据的例子update3.asp  
   
   
  Dim   conn,   cmd  
   
  Set   conn   =   Server.CreateObject("ADODB.Connection")  
   
  Set   cmd   =   Server.CreateObject("ADODB.Command")  
   
  conn.ConnectionString   =   "连接字符串写这里"  
   
  conn.Open  
   
  Set   cmd.ActiveConnection   =   conn  
   
  cmd.CommandText   =   "update_stored_procedure"   '调用存储过程  
   
  cmd.CommandType   =   4  
   
  cmd.Parameters.Append   cmd.CreateParameter("@xmldata",   200,   1,   8000,   oXML.xml)  
   
  cmd.Properties("Output   Stream")   =   Response   'IIS   5.0+支持  
   
  Response.Write   "<root>"  
   
  cmd.Execute   ,   ,1024  
   
  Response.Write   "</root>"  
   
   
  在默认情况下,服务器端返回的是UTF-8格式的数据,为了避免乱码,在update.asp中,有一句Response.Write   "<?xml   version=""1.0""   encoding=""GB2312""?>",利用这句的输出,就可以避免因中文输出带来的乱码问题。另外,利用XMLHTTP提交,页面是不刷新的,也可以减少数据传输的流量。  
     
  Top

相关问题

  • 页面更新问题?
  • 页面更新问题
  • 页面关联更新!
  • 如何强制让页面更新
  • 怎么强制一页面更新!!!
  • 为什么页面无法更新?
  • 如何定时更新页面
  • 如何检查页面是否更新?
  • 页面不能更新(一定给分)
  • 如何更新IFRAME中的页面?

关键词

  • sql server 2000

得分解答快速导航

  • 帖主:steven2000
  • xzq686
  • net_lover
  • oydj
  • dullwolf

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo