“什么是”呢;Dojo名称文本框“;onremove事件?
我的表单上有一个Dojo名称文本框“xe:djextNameTextBox”。单击[x]可从列表中删除一个名称。如何在不解析getComponent(“myNameBox”).getValue()中的所有值的情况下检查删除或单击的确切名称“什么是”呢;Dojo名称文本框“;onremove事件?,dojo,xpages,dijit.form,Dojo,Xpages,Dijit.form,我的表单上有一个Dojo名称文本框“xe:djextNameTextBox”。单击[x]可从列表中删除一个名称。如何在不解析getComponent(“myNameBox”).getValue()中的所有值的情况下检查删除或单击的确切名称 在我看来,处理此问题的唯一方法是解析所有值,以获得确切删除名称的信息。在以前的一个项目中,我不得不处理同样的问题 XPage 设置viewScope变量“ViewFilterAssString”: 扩展库Dojo名称列表文本框控件: 托管Bean“视图
在我看来,处理此问题的唯一方法是解析所有值,以获得确切删除名称的信息。在以前的一个项目中,我不得不处理同样的问题 XPage 设置viewScope变量“ViewFilterAssString”:
扩展库Dojo名称列表文本框控件:
托管Bean“视图控制器”
/**
*将所有筛选器转换为dojo列表文本框的可用格式
*@返回筛选器字符串
*/
公共字符串GetViewFilterAssString(){
字符串过滤器assString=“”;
用于(视图过滤器过滤器:视图过滤器){
如果(filtersAsString==“”)filtersAsString=filter.getKey();
else filtersAsString+=”,“+filter.getKey();
}
返回过滤器串;
}
public void setViewFilterAssString(字符串ViewFilterAssString){
if(viewFilterassString!=null&!viewFilterassString.equals(“”){
List currentfilters=Converter.toList(“,”,ViewFiltersAssString);
用于(视图过滤器过滤器:视图过滤器){
布尔删除=真;
用于(字符串currentFilter:currentfilters){
if(filter.getKey().equals(currentFilter)){
删除=假;
打破
}
}
如果(删除){
//用户一次只能单击一个筛选器
setActionViewFilter(viewFilters.removeFilter(filter));
打破
}
}
}否则{
setActionViewFilter(viewFilters.removeFilter(viewFilters.get(0));
}
}
提示:
viewFilters
是一个ViewFilter
对象的java.util.List
,而ViewFilter是一个简单的java类,它包含有关过滤器的信息(在您的例子中是一个名称)在我看来,处理这个问题的唯一方法是解析所有值,以获得确切删除了哪个名称的信息。在以前的一个项目中,我不得不处理同样的问题
XPage
设置viewScope变量“ViewFilterAssString”:
扩展库Dojo名称列表文本框控件:
托管Bean“视图控制器”
/**
*将所有筛选器转换为dojo列表文本框的可用格式
*@返回筛选器字符串
*/
公共字符串GetViewFilterAssString(){
字符串过滤器assString=“”;
用于(视图过滤器过滤器:视图过滤器){
如果(filtersAsString==“”)filtersAsString=filter.getKey();
else filtersAsString+=”,“+filter.getKey();
}
返回过滤器串;
}
public void setViewFilterAssString(字符串ViewFilterAssString){
if(viewFilterassString!=null&!viewFilterassString.equals(“”){
List currentfilters=Converter.toList(“,”,ViewFiltersAssString);
用于(视图过滤器过滤器:视图过滤器){
布尔删除=真;
用于(字符串currentFilter:currentfilters){
if(filter.getKey().equals(currentFilter)){
删除=假;
打破
}
}
如果(删除){
//用户一次只能单击一个筛选器
setActionViewFilter(viewFilters.removeFilter(filter));
打破
}
}
}否则{
setActionViewFilter(viewFilters.removeFilter(viewFilters.get(0));
}
}
提示:
viewFilters
是ViewFilter
对象的java.util.List
,而ViewFilter是一个简单的java类,它包含有关过滤器的信息(在您的例子中是一个名称)嗯,我认为有一个最简单的方法。。谢谢你KastenhoferWell先生我以为有个最简单的方法。。谢谢你,卡斯滕霍夫先生
<xp:this.beforeRenderResponse><![CDATA[#{javascript:log('beforerenderresponse (start rendering)');
requestScope.start = new Date().getTime();
viewScope.put('viewFiltersAsString', viewController.getViewFiltersAsString());
viewController.actionSetPage();}]]></xp:this.beforeRenderResponse>
<xe:djextListTextBox id="djFilters" multipleSeparator=","
value="#{viewScope.viewFiltersAsString}" displayLabel="true"
title="Hier klicken um Filter zu löschen">
<xe:this.dataProvider>
<xe:simpleValuePicker caseInsensitive="false"
labelSeparator="~" valueListSeparator=","
valueList="#{viewController.viewFiltersLabelsAsString}">
</xe:simpleValuePicker>
</xe:this.dataProvider>
<xp:eventHandler event="onChange" submit="true" refreshMode="partial"
refreshId="${javascript:compositeData.refreshId}" execMode="partial"
action="#{javascript:viewController.setViewFiltersAsString(@Trim(viewScope.get('viewFiltersAsString')).toString())}">
</xp:eventHandler>
</xe:djextListTextBox>
/**
* Converts all filters to a useable format for dojo List Textbox
* @return string of filters
*/
public String getViewFiltersAsString() {
String filtersAsString = "";
for (ViewFilter filter : viewFilters) {
if (filtersAsString == "") filtersAsString = filter.getKey();
else filtersAsString += "," + filter.getKey();
}
return filtersAsString;
}
public void setViewFiltersAsString(String viewFiltersAsString) {
if (viewFiltersAsString != null && !viewFiltersAsString.equals("")) {
List<String> currentfilters = Converter.toList(",", viewFiltersAsString);
for (ViewFilter filter : viewFilters) {
boolean remove = true;
for (String currentFilter : currentfilters) {
if (filter.getKey().equals(currentFilter)) {
remove = false;
break;
}
}
if (remove) {
// user can click only one filter at one time
setActionViewFilter(viewFilters.removeFilter(filter));
break;
}
}
} else {
setActionViewFilter(viewFilters.removeFilter(viewFilters.get(0)));
}
}