使用 XPath 在 XForms 中实现炫酷功能

http://tech.ddvip.com   2007年10月24日    社区交流

内容摘要:如果您使用过 XForms,则肯定熟悉 XPath;构建 XForms 表单时必须使用它!但使用 XPath 您所能做的不仅仅限于选择节点在页面上显示。本文将向您展示 XPath 和 XForms 如何交互以使您能够创建从未想到过的功能,比如用一个简单步骤显示惟一值列表,或结合使用 XPath 和界面元素(比如单选按钮或下拉列表)控制显示的数据,而不仅仅是提交的数据。

  本文示例源代码或素材下载

  如果您曾经在开发中使用过 XML ,那么您可能对 XPath 有所了解,它是一种表达式语言,让您能够选择 XML 文档的一些部分。如果您使用过 XForms,则肯定熟悉 XPath;构建 XForms 表单时必须使用它!但使用 XPath 您所能做的不仅仅限于选择节点在页面上显示。本文将向您展示 XPath 和 XForms 如何交互以使您能够创建从未想到过的功能,比如用一个简单步骤显示惟一值列表,或结合使用 XPath 和界面元素(比如单选按钮或下拉列表)控制显示的数据,而不仅仅是提交的数据。本文假定您熟悉 XML、XForms 和 XPath 的基础知识。如果您需要重温一下这些内容

  任务

  在本文中,您将创建一个 report-editing 表单,并使用 XPath 在表单中实现一些炫酷功能。表单中将完成如下功能:

  使用 XPath 函数产生的结果自动填充节点

  使用单选按钮创建一个 master-detail 表单

  只显示列表中的惟一项

  根据多个条件筛选结果

  使 XPath 筛选器条件可选

  该表单与图 1 类似。

  图 1. 最终表单

使用 XPath 在 XForms 中实现炫酷功能

  我们从创建基本表单开始。

  基本表单

  首先创建一个表单,要求能够在其中编辑报告的标题和主体(见清单 1)。

  清单 1. 基本表单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/D/tdxhtml1-strict.dtd">
<html
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:xforms="http://www.w3.org/2002/xforms"
  xmlns:ev="http://www.w3.org/2001/xml-events"
>
 <head>
  <title>Report Entry Editor</title>
  <link rel="stylesheet" href="style.css" type="text/css"/>
  <xforms:model >
   <xforms:instance id="editor" >
   <entry xmlns="">
     <id />
     <status />
     <title />
     <body />
   </entry>
   </xforms:instance>
   <xforms:bind nodeset="instance('editor')/title" id="titlebind"/>
   <xforms:bind nodeset="instance('editor')/body" id="bodybind"/>
   <!-- Dummy submission; we're just dealing with the client -->
   <xforms:submission id="editsubmission" action="savechanges.php"
                           method="post"/>
  </xforms:model>
</head>
<body>
    
<h2>Editor</h2>
<xforms:input bind="titlebind" >
  <xforms:label><b>Title: </b></xforms:label>
</xforms:input><br/>
<xforms:textarea bind="bodybind">
  <xforms:label><b>Body: </b></xforms:label>
</xforms:textarea><br />
    
<xforms:submit submission="editsubmission">
  <xforms:label>Save changes</xforms:label>
</xforms:submit>
    
 </body>
</html>

来源:ibm    作者:Nicholas Chase    责编:豆豆技术应用

正在加载评论...