jquery - 使用 Richfaces JQuery 突出显示选择

标签 jquery jakarta-ee jsf-2 richfaces

我试图突出显示 rich:dataGrid 中的一个选择。就像当我单击 dataGrid 中的链接时,将打开一个 modalPanel 供用户选择图像,当 modalPanel 关闭时,新选择的图像将在 dataGrid 中刷新。为此,我从 modalPanel 重新渲染 dataGrid。这很好用。现在,我想强调一下用户的选择。当我使用下面的 rich:jquery 时,它会突出显示,但随后会弹出 modalPanel 并重新渲染。因此突出显示的行将变为其原始状态。

JSF:

<rich:dataGrid value="#{startupBean.choiceKeys}" var="mapEntry" columns="#{startupBean.rowSize}" styleClass="rich-table">


                                 <rich:dataGrid id="choiceSub" styleClass="rich-table" value="#{mapEntry.value}" var="ObjBO" columns="2">
                                       <f:facet name="header">
                                          <h:outputText value="Choice:#{mapEntry.key}"></h:outputText>
                                       </f:facet>
                                 <h:panelGrid columns="2" border="0" styleClass="className">
                                 <rich:panel>
                                     <f:facet name="header">
                                     <a4j:commandLink id="objs"  action="#{startupBean.getCategory}" reRender="materialTree" oncomplete="Richfaces.showModalPanel('selectMaterial',{top:'100px', left:'400px', height:'450px', width:'450px'});" >
                                        <h:outputText value="#{ObjBO.displayName}" binding="#{startupBean.outTxt}"/>
                                            <f:setPropertyActionListener target="#{startupBean.key}" value="#{mapEntry.key}" />
                                        </a4j:commandLink>   
                                     </f:facet>
                                        <h:graphicImage width="50" height="50" id="choice"  alt="jsf-sun" url="#{ObjBO.color_url}" value="#{ObjBO.color_url}"> 
                                        </h:graphicImage>
                                        </rich:panel> 
                                 </h:panelGrid>
                                 </rich:dataGrid>
                                 <rich:jQuery selector="#choiceSub tr" query="click(function(){jQuery(this).addClass('active-row')})"/>
                        </rich:dataGrid>

CSS:

.active-row {
    background-color: red;
}

还有其他办法吗?请告诉我。

PS:我使用的是 JSF2.0、Richfaces 3.2、Apache Tomcat 7、Java 1.7。

谢谢, 简

最佳答案

当您重新呈现元素时,它会被服务器生成的新内容替换。 IE。之前动态应用的任何其他格式或更改(如 rich:jQuery 中的 jQuery 所做的那样)都会丢失。另请参阅rich中的问题描述:jQuery手册http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_jQuery.html .

基本上,在 ajax 返回后,您必须再次应用行突出显示。如果您需要更多说明,请发表评论。

关于jquery - 使用 Richfaces JQuery 突出显示选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12360273/

相关文章:

javascript - 我们能否通过IP地址准确获取任何设备的位置?如果是,哪个是最好的 API?

javascript - 从选择选项中删除项目

java - 在这种情况下,业务代表和服务定位器应该驻留在哪里才能不产生循环依赖?

ajax - JSF 2.0 中的文本框渲染

css - JSF 中的自动填充

javascript - Jquery 仅适用于首页加载(ajax 分页)

javascript - 在 jQuery 中,当你有两个 .children() 函数时会发生什么?

jakarta-ee - 使用 CDI 注入(inject)所有相同类型的 bean

java - 为什么我无法从查询中获取结果列表?

java - 用数据填充 primefaces 数据表