一个modalPanel里面的JSF2.0 + RichFaces3.3.3 suggestionBox

时间:2010-07-30 13:00:46

标签: jsf richfaces jsf-2

遵循此示例http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf?tab=editDataTable&cid=101317我创建了一个用于编辑条目的模式面板。区别在于我的一个inputText字段有一个建议框:

<h:inputText id="entryName" value="#{controller.currentItem.name}" validator="#{controller.entryNameValidator}"/>
<rich:suggestionbox id="suggestionBoxId" for="entryName" suggestionAction="#{controller.autocomplete}" var="result">
    <h:column>
        <h:outputText value="#{result.name}" />
    </h:column>
</rich:suggestionbox>
<rich:message for="entryName"/>

问题在于,当模式出现并且我在“entryName”中更改单个字母时,会发生建议,但是当它找不到任何建议时,它会将更改后的值(没有我刚刚删除的字母的那个)恢复为原始值(删除前的那个)。另一方面,如果它找到了一些建议,它仍然将值恢复为旧的,但也会在“entryName”下面的模态中打印建议(而不是在建议框中,它只是灰色文本)。此建议也只触发一次。如果我说让“你好”更改为“地狱”,它会恢复为“你好”,下次我尝试将其修改为“地狱”时没有任何反应。

我做错了什么?哦,我在jsf视图中使用非常完全相同的代码添加条目(虽然它不是一个模态,只是一个表),它工作正常。

@Edit:显然用“a4j:region”封闭它有点帮助,因为至少我能看到建议框(但在后台,所以我必须设置zindex)并在左下角浏览器不在“entryName”之下但仍然无法点击它(它只是坐在那里,即使关闭模态后也不会消失),建议仍然打印在inputText下面(不在建议框和灰色中) )它仍然只触发一次......

1 个答案:

答案 0 :(得分:0)

根据您的要求尝试修改以下内容。

enter code here <h:panelGrid columns="2" cellpadding="0" cellspacing="0">
                                <h:inputText id="input"  size="30"/>
                                <h:graphicImage   value="#{facesContext.externalContext.requestContextPath}/../images/arrow.png"
                                                  onclick="#{rich:component('equity')}.callSuggestion(true)"
                                                  alt="click" />
                            </h:panelGrid>
                            <rich:suggestionbox width="200" 
                                                suggestionAction="#{StockMasterServiceBean.suggest}" var="stock" id="equity" for="input">
                                <h:column>
                                    <h:outputText value="#{stock.symbolId}"/>
                                </h:column>
                                <h:column>
                                    <h:outputText value="#{stock.companyName}" />
                                </h:column>
                                <a4j:support ajaxSingle="true" event="onselect" reRender="abc,xyz">
                                    <f:setPropertyActionListener value="#{stock}" target="#{StockMasterServiceBean.selectedStockMaster}"/>
                                </a4j:support>
                            </rich:suggestionbox>