当前位置:  编程技术>WEB前端

HTML中的数据绑定

    来源: 互联网  发布时间:2014-09-06

    本文导语:  信息来源:Wayne_Deng的专栏 有没想过在java script中使用recordset?原来在客户端操作数据也可以这样简单,定义一个数据源,将数据绑定在各种tag上,实现应用程序般的效果,酷毙了!(首先申明一点,文章的内容全部来自msdn,...

信息来源:Wayne_Deng的专栏

有没想过在java script中使用recordset?原来在客户端操作数据也可以这样简单,定义一个数据源,将数据绑定在各种tag上,实现应用程序般的效果,酷毙了!(首先申明一点,文章的内容全部来自msdn,不过用我自己的话总结而已。)

先看看这样两个例子:
http://msdn.microsoft.com/workshop/samples/author/databind/dbevts.htm
http://msdn.microsoft.com/workshop/samples/author/databind/dbupdate.htm
不得不又一次佩服微软。

这个是DataBinding的架构:

当然实现数据绑定有下面几步:

第一步,定义数据源
从IE4.0起,就支持下面四种数据源:



Tabular Data Control (TDC)
TDC提供了一个简单的访问带有格式的文本数据的方法,一般是csv文件。
下面是一个简单的示例:


    



Remote Data Service (RDS)
远程数据服务,直接访问远程服务器端的数据,Internet Explorer 4.0. RDS 通过OLE-DB 或 Open Database Connectivity (ODBC)来实现。

示例:


    
    
    

不过感觉有点安全性的问题,因为客户端能看到这段代码。

XML Data Source
XML就不多说了,在IE4.0中这样使用:

    


Internet Explorer 5以上可以这样:



另外IE还提供了一个XML数据岛的概念:XML Data Islands.

 
MSHTML Data Source
html数据页示例:
Hector
Berlioz
1803


Modest
Moussorgsky
1839
Franz
Liszt
1811

一旦定义可以这样访问:



.第二步:绑定数据到HTML元素上
一般都是通过tag中的datasrc和datafld实现绑定的。例如:







这个是绑定表格的示例:
http://msdn.microsoft.com/workshop/samples/author/databind/dbtable.htm

其中数据来源:

           
 
 

绑定的table


   FirstLastBirthDeathOrigin
   


   

   

   

   

   




这就是效果了:
First Last Birth Death Origin 
Hector Berlioz 1803 1869 France 
Modest Moussorgsky 1839 1881 Russia 
Franz Liszt 1811 1886 France 
Antonio Vivaldi 1678 1741 Italy 
Johann Sebastian Bach 1685 1750 Germany 
Ludwig van Beethoven 1770 1827 Germany 
Wolfgang Amadeus Mozart 1756 1791 Austria 
Joseph Haydn 1732 1809 Germany 
Claude Debussy 1862 1918 France 


第三步:数据的动态添加,删除等等(对象模型)
当然绑定可以是动态的:
在script中:
span1.dataSrc = "#dsoComposer";
span1.dataFld = "compsr_first";

html是这样的:

而且可以访问数据源的ado:
var oRecordSet = dsoComposer.recordset;
自然就有oRecordSet .MoveNext等等。

如:





还可以这样用:

For Each objFld in rsAttendees.Fields
    document.write("The field name is " & objFld.Name & "
")
    document.write("The field value is " & objFld.Value & "
")
Next


添加删除记录就是:oRecordSet.AddNew()以及oRecordSet.Delete()。

第三步:响应各种数据事件(事件模型)
如何在数据更改后做出相应的处理?
msdn中提供的方法是这样的:

    ……

这些是事件名列表:

Event Bubbles Cancelable Applies to Introduced In Internet Explorer Version 
onbeforeupdate True True bound elements 4.0 
onafterupdate True False bound elements 4.0 
onrowenter True False DSO 4.0 
onrowexit True True DSO 4.0 
onbeforeunload False False window 4.0 
ondataavailable True False DSO 4.0 
ondatasetcomplete True False DSO 4.0 
ondatasetchanged True False DSO 4.0 
onerrorupdate True True bound elements 4.0 
onreadystatechange True False DSO 4.0 
oncellchange True False DSO 5.0 
onrowsinserted True False DSO 5.0 
onrowsdelete True False DSO 5.0 



怎么样?
我觉得http://msdn.microsoft.com/workshop/samples/author/databind/dbevts.htm算是一个应用比较综合的例子了,好好研究一下,必有收获。

网上有不少利用数据绑定实现分页的示例,其实数据绑定还可以做更多的事情吧?应该在rich client里面有非常大的应用,例如制作非常复杂的datagrid。

现在想进一步搞清楚的是如何简便实现与服务器端的同步,因为客户端的数据绑定是对服务器端没有影响的(你可以从服务器端生成数据源,但是在客户端的操作不会自动返回服务器),msdn上说RDS可以,但是这种方法太笨拙了吧,又不安全。


    
 
 

您可能感兴趣的文章:

  • Sar数据转HTML Sar2html
  • 验证HTML表单的输入数据 fValidator
  • Applet 如何展示html数据?
  • HTML5数据存储 sessionStorage
  • 请教高手--html页面中的表格数据直接存为excel文件格式
  • 请问:我如何写一个.html or .asp or .jsp ,使它能在客户机上打印数据?
  • 请问用c/c++如何获得html页面中用户提交的数据(如表单,谢谢! (luoluobobo1 )
  • 我到底该怎样才可以将显示在html页面中的表格的一行数据取出来呢?
  • 谁能告诉我具体怎么把html写入数据库再用document.write();显示出来!!!
  • 全新的B/S结构开发方式,用纯JS+HTML实现了类似C/S的强大浏览器交互,查询及分页浏览速度提高几倍,可以成批录入数据,有完整的数据库表访问和纯web打印
  • 全新的B/S结构开发方式,用纯JS+HTML实现了类似C/S的强大浏览器交互,查询及分页浏览速度提高几倍,可以成批录入数据,有完整的数据库表访问和纯web打印,统计图等
  • 高分请求:怎样把html表中数据导入Excel表,在线等待思想
  • 怎样利用html中的超链接来执行一个servlet或者提交该页面上的数据给一个JSP
  • html下利用javascript连数据库
  • :全新的B/S结构开发方式,用纯JS+HTML实现了类似C/S的强大浏览器交互,查询及分页浏览速度提高几倍,可以成批录入数据,有完整的数据库表访问和纯web打印,统计图...
  • 为什么数据库添加成功了,可页面(html)没有出来(ie不停的转)???
  • python抓取某汽车网数据解析html存入excel示例
  • 救命!!!各位老大,servlet中把查出来的数据(报表)用excel显示,点击一个button(html),就要显示,怎么办?急急急!一定给分,最好有
  • c#远程html数据抓取实例分享
  • 请问怎样用JSP结合数据库生成在HTML中显示的树目录,如同“资源管理器”一样!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing.text.html类html.tag的类成员方法: html定义及介绍
  • 基于HTML5的幻灯片 html5slides
  • java命名空间javax.swing.text.html类html.tag的类成员方法: html.tag定义及介绍
  • 基于 KBEngine 的 HTML5 插件 kbengine_html5
  • java命名空间javax.swing.text.html类html.unknowntag的类成员方法: html.unknowntag定义及介绍
  • 让 IE 支持 HTML5 html5shim
  • java命名空间javax.swing.text.html类htmleditorkit.inserthtmltextaction的类成员方法: html定义及介绍
  • HTML文档格式化工具 HTML Tidy
  • java命名空间javax.swing.text.html类html的类成员方法: getallattributekeys定义及介绍
  • HTML5 在线工具 html5demos
  • java命名空间javax.swing.text.html.parser类dtd的类成员方法: html定义及介绍
  • 框架网页中如何使用sendredirect(a.html),使得a.html不显示在框架中,是整页显示!
  • java命名空间javax.swing.text.html类html.tag的类成员方法: comment定义及介绍
  • 关于editplus的使用,编译完生成.class后,我又编写了html来执行applet,将其保存,如何经ie解释打开(直接在editplus上操作)不是显示html语言呀
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: color定义及介绍
  • 去除HTML标签删除HTML示例代码
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: vlink定义及介绍
  • python实现html转ubb代码(html2ubb)
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: rel定义及介绍
  • asp.net去除HTML标签删除HTML小例子
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: src定义及介绍
  • 用正则查找html中有id属性的html标签


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3