【问题标题】:Change the color of primefaces Scheduler Event更改 primefaces 调度程序事件的颜色
【发布时间】:2012-08-13 15:07:11
【问题描述】:

我正在使用 primefaces(3.0) 调度程序组件。

http://www.primefaces.org/showcase-labs/ui/schedule.jsf

正如我们在这里看到的,有些事件是用颜色创建的 蓝色。

现在我想改变这些事件的颜色,基于 独特性。例如,每个员工都有一个唯一的 ID 关联。

因此,对于 ID 2 的员工 ID 1,事件颜色将为蓝色 事件颜色将为红色等等。

如何从支持 bean 将颜色应用于这些数量的事件? 任何线索....

我可以通过这种方式更改调度程序的背景颜色,但不知道如何更改事件的颜色?

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    如果需要,在同一个事件中添加样式类和数据。

    例子:

    String id="2";
    DefaultScheduleEvent evento = new DefaultScheduleEvent("titule", new Date(), new Date(), id);
    evento.setStyleClass("event-close");   
    

    在 CSS 中,Damian 的反应很好。

    【讨论】:

    • 我在 db 中保存了颜色,如何为该样式类添加颜色?
    【解决方案2】:

    DefaultScheduleEvent 有一个以 CSS 类作为参数的构造函数:

    eventModel = new DefaultScheduleModel();  
    eventModel.addEvent(new DefaultScheduleEvent("Event for employee 1", new Date(), laterToday(), "emp1"));
    eventModel.addEvent(new DefaultScheduleEvent("Event for employee 2", tomorrow(), laterTomorrow(), "emp2"));  
    

    emp1 和 emp2 是样式类。

    对于 PrimeFaces 3.0,将以下 css 添加到您的样式表中:

    .emp1 .fc-event-skin {
        background: red;
    }
    .emp2 .fc-event-skin {
       background: green;
     }
    

    对于其他 PrimeFaces 版本,请参阅其他答案

    【讨论】:

    【解决方案3】:

    在使用 primefaces 4.0 时应用此代码

    eventModel = new DefaultScheduleModel();  
    eventModel.addEvent(new DefaultScheduleEvent("Event for employee 1", new Date(), laterToday(), "emp1"));
    eventModel.addEvent(new DefaultScheduleEvent("Event for employee 2", tomorrow(), laterTomorrow(), "emp2"));  
    

    emp1 和 emp2 是样式类。然后将以下 css 添加到您的样式表中:

    .emp1 .fc-event-inner {
        background: red;
    }
    .emp2 .fc-event-inner {
       background: green;
     }
    

    【讨论】:

      【解决方案4】:

      在 Primefaces 7.0 中,CSS 选择器需要有所不同。你应该使用.fc-bg

      使用以下 CSS 代码:

      .specialEvent .fc-bg {
          background-color: red;
          border-color: red;
          color: white;
          opacity: 1;
      }
      

      从 javacode 设置样式保持不变

      【讨论】:

        【解决方案5】:

        您可以在样式表中定义样式类,并在支持 bean 中将样式类设置为 DefaultScheduleEvent 实例,方法是:

        public void setStyleClass(String styleClass)
        

        【讨论】:

        • 如何给这个类从 db 获取的背景色?
        【解决方案6】:

        在代码中设置 styleClass 后,如上所述,在 PrimeFaces 5.2 中着色对我不起作用。最后,我使用了重要的修饰符:

        a.emp1 {
           background: #D0525D !important;
           border-color: #932c39!important;
        }
        

        【讨论】:

        • 除非真的、真的、真的需要,否则不要使用 !important。更好的是使您的选择器更具体...(例如,没有明确指示这仅适用于计划组件,选择器中带有“.fc-event-inner”的答案更好)
        • 感谢您的评论。我完全同意,但我尝试使用不同的类(甚至列出我在检查细节中看到的所有内容)但没有任何效果。我还确保我的 css 是最后加载的。这就是为什么我添加了我的解决方案 - 其他的对我不起作用。我正在使用 Spark 主题。
        • spark 他们使用 !important 本身吗?这也许可以解释事情
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        • 2018-01-09
        • 2016-03-16
        • 1970-01-01
        相关资源
        最近更新 更多