当前位置: 首页 > 知识库问答 >
问题:

PF或var中数据表的条件着色与数据表中的绑定标记

卢志业
2023-03-14

我有一个数据表和一个收集器。datatable中的每一行都有一个按钮,该按钮将相应的行添加到收集器。我想给这个数据表添加条件着色。条件是所选行是否在收集器中。

<p:dataTable rowStyleClass="#{backingBean.selectedMemberList.contains(aMember) ? 'passive' : 'active'}" style="width: 100%;" id="dTable" var="aMember" value="#{backingBean.memberList}">
   <p:column>
   ...
  </p:column>

  <p:column>
      <p:commandButton id="btn_add" value="Add" update=":mf:op" process=":mf:op_uk">
          <p:collector value="#{aMember}" addTo="#{backingBean.selectedMemberList}" />
       </p:commandButton>
  </p:column>  

支持bean:

List<Member> selectedMemberList;
List<Member> memberList;

//getter and setter methods

上面的代码执行被动样式类,但不添加主动样式。我认为这可能是因为我无法将var(请求范围)传递给支持bean。所以我尝试将该值绑定到支持bean值:

<p:dataTable binding="#{backingBean.anotherMember}" rowStyleClass="#{backingBean.selectedMemberList.contains(aMember) ? 'passive' : 'active'}" style="width: 100%;" id="dTable" var="aMember" value="#{backingBean.memberList}">

backingBean:

private Member anotherMember;
//getter and setter methods

但也没有奏效,有人对这个问题有什么推荐吗?

PrimeFaces版本2.2.1

编辑:css包含以下字段:

.active{    
    background-image: none !important;   
}

.passive{
    background-color:gainsboro !important;
    background-image: none !important;
}

编辑

xhtml:

<p:commandButton action="#{backingBean.checkIfMemberInList(aMember)}" id="btn_add" value="Add" update=":mf:op :mf:op_uk" process=":mf:op_uk">
          <p:collector value="#{ukt}" addTo="#{backingBean.selectedMemberList}" />
</p:commandButton>

支持bean:

public boolean checkIfMemberInList(Member aMember){       
        for(int i=0; i<selectedMemberList.size();i++){            
            if(selectedMemberList.contains(aMember)){ 
                return true;
            }
        }
        return false;
    }

共有1个答案

夹谷辰沛
2023-03-14

可以是backingBean.selectedMemberList吗。包含(aMember)始终返回false?

如果是这样,

使用backingBean.selectedMemberList“播放”。包含(aMember),请先尝试backingBean之类的方法。检查成员列表(aMember),

boolean checkIfMemberInList(Member iMember){ 
    //iterate over the list and check if object exists , if so return true , otherwise false
}

可能是对象不同…相同的id并不意味着它们的哈希代码相同。。。

您可以考虑重写成员类的int hashCode或布尔等式

编辑

我对checkIfMemberInList的建议只是第一个使其工作的版本,我真的认为您应该重写成员类的等号,这样您就可以使用selectedMemberList.contains(memberObj)

实现hashCode()和equals()

 类似资料:
  • Update 语句 uodate为更新也就相当于修改 Update 语句用于修改表中的数据。 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 更新某一行中的一个列 我们为 lastname 是 "Wilson" 的人添加 firstname: UPDATE Person SET FirstName = 'beijing' WHERE LastName = 's

  • 问题内容: 我正在MVC 4应用程序中工作..我想使用jQuery将json数据绑定到应用程序中的表。我能够使用方法将数据集(我从数据库中获取数据)转换为json数据并获取json数据。但是我不知道如何使用jquery将其绑定到表。请告诉我解决此问题的方法。 JSon数据 : 我的json数据是这样的。 jQuery : 查看 : 控制器 : 问题答案: 首先,您应该将返回的json 字符串 解析

  • 问题内容: 我有麻烦在HTML5中,我有10000行,以显示我在使用PHP的值,我填充从MySQL,由于某种原因,我看不到任何滚动条,我试图设置和,但没有帮助。请帮我! 问题答案: 不幸的是,使用datalist属性并不能做很多事情。数据列表当前不支持任何CSS样式,并且特定的视觉特征是特定于浏览器的。某些浏览器可能选择为长列表添加滚动条。 如果这是不可接受的,则可能必须忘记数据列表,并通过Jav

  • 问题内容: 我想在bokeh中显示一个DataTable,根据单元格的文本内容,单元格是红色还是橙色。 例如,如果单元格包含单词“错误”,则该单元格将以红色背景显示。如果单元格包含“警告”一词,则为橙色。 我相信我应该使用,但是怎么用呢? 我该怎么做? 谢谢 问题答案: 浏览文档,您可以使用HTMLTemplateFormatter和下划线js格式化表格。有关更多信息,请参见http://docs

  • 本文向大家介绍SpringMVC实现数据绑定及表单标签,包括了SpringMVC实现数据绑定及表单标签的使用技巧和注意事项,需要的朋友参考一下 首先理解数据绑定 为什么要使用数据绑定 基于HTTP特性,所有的用户输入的请求参数类型都是String,比如下面表单: 但我们提交后,为了将请求信息映射到模型中,还需要手动进行格式转换,此外还借助了一个中转对象productForm,其字段名称和Produ

  • AngularJS中的数据绑定就是模型与视图间的自动同步。这种实现方式让你能专心地处理你的模型。视图总是模型的投影。当模型改变,视图就会反映这种改变,反之亦然。 传统的模板系统数据绑定 大部分模板系统都是这种绑定方式。 方向:如图所示,它们将模型和模板结合生成视图。这个结合过程产生的视图不是动态更新的。更糟的是,任何用户和视图的交互都不会反映到模型。这意味着开发者要自动写视图和模型双向的同步代码。