在值变化的数据表中更改可编辑列的输入字段的背景颜色

时间:2012-02-18 08:08:05

标签: jsf-2 primefaces

我在dataTable中有一个可编辑的coloumn。代码是:

<p:column id="articleDescription" headerText="Article Description" filterBy="#{article.description}" filterMatchMode="startsWith">
  <p:inputText id="description" value="#{article.description}"style="border:none; box-shadow:none;" />
</p:column>
  1. 我想更改inputText的背景颜色 - 对事件的描述 - valueChange。我怎么能改变它?
  2. 此外,它的默认背景颜色应该与其父行相同?可能吗?怎么做到呢?
  3. 谢谢, Shikha

2 个答案:

答案 0 :(得分:3)

单元格的背景颜色设置为父行的颜色为:

.inputTextStyle {
    background-color: transparent !important;
}

<h:inputText id="vendorDiscountPerInputTxt"
    value="#{articlePromo.descPromoPorcentaje}"
    styleClass="inputTextStyle">
</h:inputText>

此外,将值更改事件中单元格的背景颜色更改为:

$(document.getElementById(str)).css("background-color", "pink !important");

将其标记为重要是必需的,因为主要标记将其标记为重要。所以,要覆盖它。

答案 1 :(得分:0)

  

我想更改inputText的背景颜色 - 对事件的描述 - valueChange。我该如何改变?

只需在输入元素的change事件期间执行一些JavaScript / jQuery(PrimeFaces捆绑了jQuery,您不需要自己安装)。


  

此外,它的默认背景颜色应该与其父行相同?可能吗?怎么办呢?

使用jQuery可以轻松获取父行并获取其CSS background-color属性。


假设您正在使用jQuery方向,它看起来像这样

<p:inputText styleClass="changeable" />

$(document).delegate("tr :input.changeable", "change", function() {
    var $this = $(this);
    $this.css('background-color', $this.closest('tr').css('background-color'));
});