添加多文档删除
基于前面定义的主页面需求,我们想要能够选择单个或多个文档以便删除。为此,只需在 viewbody_Contacts viewPanel 的第一个 viewColumn 中使用复选框,并在嵌入式的 Image Resource 上使用一个简单的点击事件动作即可。这完美地阐释了 XPages 有多么强大,以及会节省 Domino Web
应用程序开发人员多少时间。太简单了,而 XPages 又使得这两项处理相当地强大!
在 viewColumns 中启用复选框
利用 viewColumn1 构建这个 Multiple Document Deletions Engine。
要在 viewColumns 中启用复选框,可在 viewColumn Properties 面板的 View Column 部分修改 Column Display 属性(参见图 36),以便只显示 Check
Box (showCheckBox = true)。
图 36. 通过 column display 属性设置的 Check box viewColumn
安排
该选项可在 All Properties 部分设置,也可在 source 面板中设置。
向图像资源添加动作
现在每个 viewColumn 项都有了复选框,下面给 XPage 上的元素或对象分配一个动作。添加一个简单的 Image Resource,并为该 Image Resource 定义一个动作。
从 Controls 面板拖放,或者从 Domino Designer on Eclipse Application 菜单选择,或者在 Source 面板中使用标签,以便在 XPage 上包含一个 Image Resource。Controls 面板或 Domino Designer on Eclipse
application 菜单提供一个 Select Image 窗口,可从中选择 trash.gif Image Resource(参见图 37)。
图 37. Insert Image Resource
窗口
一旦图像资源包含到 XPage 上,就可以通过 Events 面板添加 Event Action
了,Events 面板位于 Domino
Designer on Eclipse 默认透视图的底部(参见图 38)。
图 38. Object Events 属性面板
从图 38 可以看到,我们可以为给定的事件(在本例中是点击 Image Resource)添加动作。当从 Events 面板选择 Add
Action 时,会出现 Edit
Simple Action 窗口(参见图 39)。
图 39. Simple Action 窗口 ——
Delete Selected Documents
这里的操作很简单,只要选择 Action 类别、Action(可以发现已经定义了 Delete Selected Documents!),将该动作绑定到 viewPanel,甚至定义确认提示文本。
一旦完成这一修改并构建了自己的 index XPage,就可以马上开始选择多个文档,点击垃圾桶图标,删除所选择的文档了。
viewColumn 内容的编程
针对 viewbody_Contacts viewPanel 的第二个需求是,显示个人地址簿应用程序中列出的联系人的 ContactPhoto。修改 viewColumn_Avatar 以显示 ContactPhoto,并添加一个 Event 动作以编辑模式打开给定的项(类似于所定义的 viewColumn_Name 链接动作)。
最初为 viewbody_Contacts viewPanel 定义了一个变量,具体来说是为 viewPanel 中的每个 NotesDocument 项定义 entry 作为变量名。现在使用该变量声明来获得有关 NotesDocument 项的信息,同时与标签结合使用,为每个 NotesDocument 项呈现一个简单的上下文敏感的 IMG 元素。
一旦选择了 viewColumn_Avatar,就可以定义它的 Column Display 属性,以将它的值呈现为 HTML (contentType = HTML)。然后可通过 All
Properties 部分,选择它的 Data value (value),以使用 Computed
值(参见图 40)。
图 40. viewColumn computed value 属性
该动作引出脚本编辑器窗口(参见图 41),在该窗口中可使用 entry 变量获得当前 NotesDocument DocumentUniqueID 上的句柄 Database FilePath,并使用这些值来创建每个项的 IMG 元素。
图 41. XPage 脚本编辑器窗口
这是一个非常简单的例子,展示了 XPages 中的技术和功能有多么简单。NotesDocument 上的句柄是该 NotesDocument 的任何 NotesItems、属性或任何信息的入口点。注意这些信息如何在运行时用于交付一些真正高级的功能。再次来看图 42中所示的完成的 Web
2.0 应用程序。
图 42. 完成的 index XPage 主页面示例
构建和查看主页面现在会呈现预览结果:一个简单的 New Contact 表单,就在 Contacts 视图的旁边。这虽然是一个简化的 Person XPage,但是也提供多文档删除功能和单个文档编辑功能。
当然,这些例子也可以扩展,以允许附加的数据维护功能。但是主页面提供一个基于 XPage 的 Domino Web 应用程序用户界面的示例实现,功能完善。
最后要提醒一下。尽管本教程中没有介绍,但是在使用这里创建的这类例子之前,需要修改 Application Control List (ACL),以便:
- 禁用匿名访问
- 添加带有作者、编辑和删除权利的单个或成组的文档
- 给每个用户功能需求分配适当的访问控制角色。
|