我想在 XPages 中创建一个新字段来执行与表单中的名称字段相同的操作。泰
问问题
1610 次
4 回答
2
使用扩展库的名称选择器和 DOJO 表单控件的名称文本框。名称选择器从目录中抓取,名称字段显示名称。
这是一个例子。
<xe:namePicker id="namePicker1"
for="djextNameTextBox1">
<xe:this.dataProvider>
<xe:dominoNABNamePicker groups="false"
nameList="peopleByLastName">
</xe:dominoNABNamePicker>
</xe:this.dataProvider>
</xe:namePicker>
<xe:djextNameTextBox id="djextNameTextBox1"
value="#{document1.<FIELDNAME>}">
</xe:djextNameTextBox>
于 2013-10-11T15:12:06.450 回答
1
您可以使用这个简单的 SSJS 代码片段在文档中创建名称字段。
var n:NotesItem = doc.replaceItemValue("Field1", "Value1");
n.setNames(true);
于 2013-10-11T12:23:43.687 回答
1
使用java bean后台怎么样?创建一个名为 NameConverter 的 java bean...
package converters;
import java.util.ArrayList;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import lotus.domino.Name;
import lotus.domino.NotesException;
import com.ibm.xsp.model.domino.DominoUtils;
public class NameConverter implements Converter {
private Name createName(String name) {
Name n = null;
try {
n = DominoUtils.getCurrentSession().createName(name);
} catch (NotesException e) {
e.printStackTrace();
}
return n;
}
public Object getAsObject(FacesContext context, UIComponent component, String value) {
String[] names = value.split(",");
Name name = null;
ArrayList<String> tmpNames = new ArrayList<String>();
for (int i = 0; i <= names.length - 1; i++) {
name = this.createName(names[i].trim());
try {
tmpNames.add(name.getAbbreviated());
} catch (NotesException e) {
e.printStackTrace();
}
}
return tmpNames.toString().replace("[", "").replace("]", "");
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
String[] names = value.toString().split(",");
Name name = null;
ArrayList<String> tmpNames = new ArrayList<String>();
for (int i = 0; i <= names.length - 1; i++) {
name = this.createName(names[i].trim());
try {
tmpNames.add(name.getAbbreviated());
} catch (NotesException e) {
e.printStackTrace();
}
}
return tmpNames.toString().replace("[", "").replace("]", "");
}
}
在 faces-config.xml 中注册您的转换器...
<converter>
<converter-id>nameConverter</converter-id>
<converter-class>converters.NameConverter</converter-class>
</converter>
然后在您的 xPage 中使用简单的转换器创建一个字段...
<xp:inputText id="userName" style="width:300px">
<xp:this.converter>
<xp:converter converterId="nameConverter" />
</xp:this.converter>
</xp:inputText>
简单得像地狱,完全可扩展。享受吧,吉克拉
于 2013-10-11T21:35:07.580 回答
0
自定义转换器是最好的解决方案: getAsObject:@Name("[Cannonicalize]",@Explode(vlaue)) - 保存的值 getAsString:@Implode(@Name("[Abbreviate]",value),",") -网络价值
于 2013-10-11T15:34:18.230 回答