信息来源: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数据页示例:
First | Last | Birth | Death | Origin |
這就是效果了: First Last Birth Death Origin Hector Last Birth Death Origin Hector Last Birth Death Origin Hector Last Birth Death Origin Hector Last Birth Death Origin Hector Last B180339696939 Modest Moussorgsky 1839 1881 Russia Franz Liszt 1811 1886 France Antonio Vivaldi 167886 France Antonio Vivaldi 167886 France 50 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 是這樣的:PANSATA 而且可以存取資料來源的ado: var oRecordSet = dsoComposer.recordset; 自然就有oRecordSet = dsoComposer.recordset; 自然就有oRecordSet .MoveNext等等。 如: onclick="t將BUTTON VALUE=" onclick="tdcComposers.recordset.MovePrevious(); if ( 🎜> " onclick="tdcComposers.recordset.MoveNext(); tdcComposers.recordset.MoveLast();"> >" onclick="tdcComposers.recordset.MoveLast()"> 還可以這樣用: For Each objFld in rsAttendees.Fields document.write("The field name is " & pFld.Name & " & objFld.Value & " ") Next 新增刪除記錄就是:oRecordSet.AddNew()以及oRecordSet.Delete()。 第三步:回應各種資料事件(事件模型) 如何在資料變更後做出對應的處理? msdn中提供的方法是這樣的: <script> <BR> … <BR></script> … 這些是事件名稱清單: Event Bubbles Cancelable Applies to Introduced In Internet Explorer Version onbeforeupdate True 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.0com 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 怎麼樣? 我覺得http://msdn.microsoft.com/workshop/samples/author/databind/dbevts.htm算是應用比較綜合的例子了,好好研究一下,必有收穫。 網路上有不少利用資料綁定實現分頁的範例,其實資料綁定還可以做更多的事情吧?應該在rich client裡面有非常大的應用,例如製作非常複雜的datagrid。 現在想進一步搞清楚的是如何簡單實現與伺服器端的同步,因為客戶端的資料綁定是對伺服器端沒有影響的(你可以從伺服器端產生資料來源,但是在客戶端的操作不會自動返回伺服器),msdn上說RDS可以,但這種方法太笨拙了吧,又不安全。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
単語と一致する正規表現
新しいジョブ名をデータベース内の既存のジョブ名と照合しようとするスクリプトがあります。 SELECTa.titleASJobTitle,j.DescriptionASMatched...
から 2024-04-06 21:24:04
0
1
606
MySQL は複数のテーブルからデータを取得します
次の列を含む eg_design テーブル、および次の列を含む eg_domains テーブル、および次の列を含む eg_fonts テーブルがあります。 $domain_id に...
から 2024-04-06 18:42:44
0
2
479
ループするために MySQL の結果を ID ごとにグループ化する
mysqlにフライトデータを含むテーブルがあります。 codeigniter3Journey_idair_idFlightDurationout_or_inflightdurati...
から 2024-04-06 17:27:56
0
1
406
関連トピック
詳細>
|