婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > HTML中的數據綁定

HTML中的數據綁定

熱門標簽:廣州ai外呼系統業務 天津企業外呼系統代理商 中山外呼系統中間件 無錫電銷外呼系統代理 地圖標注多家店 南昌crm外呼系統如何 外呼系統號碼顯示 車載電話機器人 什么行業需要電話機器人

信息來源:Wayne_Deng的專欄

有沒想過在java script中使用recordset?原來在客戶端操作數據也可以這樣簡單,定義一個數據源,將數據綁定在各種tag上,實現應用程序般的效果,酷斃了?。ㄊ紫壬昝饕稽c,文章的內容全部來自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文件。
下面是一個簡單的示例:

OBJECT CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"
    ID=dsoComposer WIDTH=0 HEIGHT=0>
    PARAM NAME="DataURL" VALUE="composer.csv">
/OBJECT>


Remote Data Service (RDS)
遠程數據服務,直接訪問遠程服務器端的數據,Internet Explorer 4.0. RDS 通過OLE-DB 或 Open Database Connectivity (ODBC)來實現。

示例:

OBJECT classid="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
    ID=dsoComposer HEIGHT=0 WIDTH=0>
    PARAM NAME="Server"  VALUE="http://musicserver">
    PARAM NAME="Connect" VALUE="dsn=music;uid=guest;pwd=">
    PARAM NAME="SQL"     VALUE="select compsr_name from composer">
/OBJECT>
不過感覺有點安全性的問題,因為客戶端能看到這段代碼。

XML Data Source
XML就不多說了,在IE4.0中這樣使用:
APPLET
    CODE="com.ms.xml.dso.XMLDSO.class"
    ID="xmldso"
    WIDTH="0"
    HEIGHT="0"
    MAYSCRIPT="true">
    PARAM NAME="URL" VALUE="composer.xml">
/APPLET>

Internet Explorer 5以上可以這樣:

!--[if gte IE 5]>
XML ID="xml1">
topic-info>
    page-type>reference/page-type>
    member-type>property/member-type>
    persistent-name>ACCESSKEY/persistent-name>
    runtime-name readable="1" writeable="1">accessKey/runtime-name>
    abstract>Sets or retrieves the accelerator key for the object./abstract>
/topic-info>
/XML>
![endif]-->

另外IE還提供了一個XML數據島的概念:XML Data Islands.

 
MSHTML Data Source
html數據頁示例:
H1 ID=COMPSR_FIRST>Hector/H1>
MARQUEE ID=COMPSR_LAST>Berlioz/MARQUEE>
DIV ID=COMPSR_BIRTH>1803/DIV>
H2 ID=COMPSR_FIRST>Modest/H2>
H3 ID=COMPSR_LAST>Moussorgsky/H3>
BUTTON ID=COMPSR_BIRTH>1839/BUTTON>
TEXTAREA ID=COMPSR_FIRST>Franz/TEXTAREA>
XMP ID=COMPSR_LAST>Liszt/XMP>
SPAN ID=COMPSR_BIRTH>1811/SPAN>

一旦定義可以這樣訪問:

OBJECT ID=htmlComposer DATA="compdata.htm" HEIGHT=0 WIDTH=0>
/OBJECT>
.第二步:綁定數據到HTML元素上
一般都是通過tag中的datasrc和datafld實現綁定的。例如:
INPUT TYPE=TEXTBOX DATASRC="#dsoComposers" DATAFLD="compsr_last">

TABLE DATASRC=#dsoComposer>
TR>
TD>DIV DATAFLD=compsr_first>/DIV>/TD>
/TR>
/TABLE>
這個是綁定表格的示例:
http://msdn.microsoft.com/workshop/samples/author/databind/dbtable.htm

其中數據來源:
OBJECT id="tdcComposers" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
 PARAM NAME="DataURL" VALUE="http://msdn.microsoft.com/workshop/samples/author/databind/composer.csv">          
 PARAM NAME="UseHeader" VALUE="True">
 PARAM NAME="TextQualifier" VALUE="'">
/OBJECT>
綁定的table
TABLE datasrc=#tdcComposers>
THEAD>TR STYLE="font-weight:bold">
   TD>First/TD>TD>Last/TD>TD>Birth/TD>TD>Death/TD>TD>Origin/TD>
   /TR>/THEAD>
TBODY>
TR>
   TD>DIV datafld="compsr_first">/DIV>/TD>
   TD>DIV datafld="compsr_last">/DIV>/TD>
   TD>DIV datafld="compsr_birth">/DIV>/TD>
   TD>DIV datafld="compsr_death">/DIV>/TD>
   TD>DIV datafld="origin">/DIV>/TD>
/TR>
/TBODY>
/TABLE>
這就是效果了:
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是這樣的:
SPAN DATASRC="#dsoComposer" DATAFLD="compsr_first">/SPAN>
而且可以訪問數據源的ado:
var oRecordSet = dsoComposer.recordset;
自然就有oRecordSet .MoveNext等等。

如:
INPUT ID=cmdNavFirst TYPE=BUTTON VALUE=""
    onclick="tdcComposers.recordset.MoveFirst()">
INPUT ID=cmdNavPrev TYPE=BUTTON VALUE="  "
    onclick="tdcComposers.recordset.MovePrevious();
    if (tdcComposers.recordset.BOF)
        tdcComposers.recordset.MoveFirst();">
INPUT ID=cmdNavNext TYPE=BUTTON VALUE=" > "
    onclick="tdcComposers.recordset.MoveNext();
        if (tdcComposers.recordset.EOF)
            tdcComposers.recordset.MoveLast();">
INPUT ID=cmdNavLast TYPE=BUTTON VALUE=">>"
    onclick="tdcComposers.recordset.MoveLast()">

還可以這樣用:
SCRIPT Language="VBScript">
For Each objFld in rsAttendees.Fields
    document.write("The field name is "  objFld.Name  "BR>")
    document.write("The field value is "  objFld.Value  "BR>")
Next
/SCRIPT>

添加刪除記錄就是:oRecordSet.AddNew()以及oRecordSet.Delete()。

第三步:響應各種數據事件(事件模型)
如何在數據更改后做出相應的處理?
msdn中提供的方法是這樣的:
SCRIPT FOR=cboSort(數據源名) EVENT=onchange(事件名)>
    ……
/SCRIPT>
這些是事件名列表:

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可以,但是這種方法太笨拙了吧,又不安全。

標簽:泰州 欽州 仙桃 呂梁 攀枝花 滄州 海西 佛山

巨人網絡通訊聲明:本文標題《HTML中的數據綁定》,本文關鍵詞  HTML,中的,數據,綁定,HTML,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML中的數據綁定》相關的同類信息!
  • 本頁收集關于HTML中的數據綁定的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 崇信县| 来安县| 福贡县| 西吉县| 西宁市| 宜良县| 西乌珠穆沁旗| 怀仁县| 德兴市| 中牟县| 米易县| 西林县| 六盘水市| 天门市| 阜宁县| 保亭| 朝阳市| 绥芬河市| 五峰| 南召县| 星座| 高阳县| 长春市| 宜兰市| 阿合奇县| 泾川县| 景泰县| 呼伦贝尔市| 弥勒县| 横峰县| 舞阳县| 天镇县| 融水| 大关县| 常熟市| 女性| 鄂尔多斯市| 五华县| 林周县| 准格尔旗| 五莲县|