假定示范数据岛表示的是一个购物车的内容。客户希望电子商务应用提供一些特定的功能,例如随心所欲地查看购物车。将必要的信息存储到客户端以后,就能动态显示购物车内容。
“HTML绑定”告诉客户端浏览器:和一个HTML对象关联的值是由一个特定来源提供的。绑定HTML对象时,更新其值会造成关联节点的文本同时更新。例如,一个输入框的值可来源于xml数据岛的一个节点,如清单B所示。
这段代码会生成两个文本框,第一个包含Easton,第二个包含Pennsylvania。更改任何输入框的内容,都能体会到数据绑定的妙处。例如,假定在和数据岛的
city节点绑定的文本框中输入Wilson Borough,那个节点的文本就会从Easton变成Wilson Borough,如清单C所示。
将HTML对象和xml数据岛绑定时,需注意3件事情。首先,并非每个HTML对象都能绑定。其次,并非每个HTML对象都能更新数据岛。第三,并非每个HTML对象都将数据岛的节点文本呈现为HTML。表A列出了可以绑定的HTML对象,并指出对象是否可以更新数据岛,以及数据岛的节点文本是否能呈现为HTML。
表A
HTML对象 | 可更新 | 呈现HTML |
a | 否 | 否 |
applet | 是 | 否 |
button | 否 | 是 |
div | 否 | 是 |
frame | 否 | 否 |
iframe | 否 | 否 |
img | 否 | 否 |
input type="button" | 否 | 是 |
input type="checkbox" | 是 | 否 |
input type="hidden" | 是 | 否 |
input type="password" | 是 | 否 |
input type="radio" | 是 | 否 |
input type="text" | 是 | 否 |
legend | 否 | 是 |
marquee | 否 | 是 |
select | 是 | 否 |
span | 否 | 是 |
table | 否 | 是 |
textarea | 否 | 否 |
虽然并非每个可绑定的HTML对象都能更新数据岛,但这其实无关紧要,因为大多数HTML对象都只是显示。另外,虽然并不是每个对象都能呈现数据岛节点文本,其实也无关紧要。以HTML
select对象为例,和一个数据岛的节点绑定时,select对象的选项并不反映数据岛的节点文本。相反,节点文本反映的是选中的select对象的选项。