如何将close [X]图标添加到djextNameTextBox?

时间:2016-01-19 21:37:05

标签: javascript css dojo xpages dijit.form

不确定为什么但在某些页面上此控件具有[X]图标而在另一页上则没有。我需要能够通过单击此图标

从列表中删除名称
<?xml version="1.0" encoding="UTF-8"?>
<xp:view 
       xmlns:xp="http://www.ibm.com/xsp/core"
       xmlns:xc="http://www.ibm.com/xsp/custom"
       xmlns:xe="http://www.ibm.com/xsp/coreex">

<xe:djextNameTextBox id="djextNameTextBox1" multipleSeparator="," multipleTrim="true">
    <xe:this.value><![CDATA[#{javascript:"NAME1,NAME2,NAME3"}]]>/xe:this.value>
</xe:djextNameTextBox>
</xp:view>

使用.lotusFilter .lotusClose css无济于事。此图标只出现在设计模式中,但我在xPage上看不到它 enter image description here

1 个答案:

答案 0 :(得分:4)

X图标用于从字段绑定的任何内容中删除所选选项。它不是通过CSS添加的,只有在可以编辑组件时才会添加它,但在您的实现中它不是。

value属性,对于此属性和任何可编辑组件,用于将其绑定到范围变量或数据源属性(例如#{document1.myField})。它定义了您希望存储数据的位置,而不是默认值(即defaultValue属性)。因此,<xe:this.value><![CDATA[#{javascript:"NAME1,NAME2,NAME3"}]]>/xe:this.value>意味着您尝试将所选内容存储到名为&#34; NAME1,NAME2,NAME3&#34;的字符串中。因为它不可编辑且无法存储在任何地方,所以它不允许您删除这些值 - 它有效地显示了该组件的只读版本。

您需要使用value属性映射到数据源属性。如果您需要默认值,可以在defaultValue属性或beforePageLoad或其他此类事件中完成。 (我不确定一个以逗号分隔的字符串是否可用于设置默认值,或者您是否需要传递数组/向量/列表。)

我强烈建议查看Extension Library Demo数据库(OpenNTF下载文件中的XPagesExt.nsf)中的示例,特别是Domino_Pickers.xsp,Name Pickers选项卡。它是任何扩展库组件的最佳参考,是我们在编写XPages Extension Library一书时使用的关键资源。