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

Primefaces数据表替换分页按钮图标

臧翰采
2023-03-14

我需要一些关于Primefaces数据表分页按钮的帮助。我正在用图标替换分页按钮上的图标。下面是一个CSS示例,我为其中一个做了什么(我以同样的方式修改了其他CSS):

div.ui-paginator > a.ui-paginator-prev > .ui-icon.ui-icon-seek-prev {
    text-indent: 0;
}

div.ui-paginator > a.ui-paginator-prev > .ui-icon.ui-icon-seek-prev::before {
    font-family: FontAwesome;
    content: "\f048";
}

我刷新了我的页面,我注意到图标被替换了,但现在每个字体可怕图标(F、P、N和E)的右侧都会出现一个新字符。

我相信这与语言环境有关,其中N代表Next,P代表Previous,E代表End,F代表First。日历组件也有同样的问题,我修改了我的区域设置。js解决了这个问题。如果可能的话,我也想删除这些分页字符。

我怎么能那样做?

是否也可以将(150中的1个)修改为我的语言环境?

编辑1

旧图标已被删除,如上所述,用相同的css程序只是不同的选择器。我没有为此使用任何自定义分页器,只有默认的Primeface可数据分页。

我的DataTable xhtml标记是:

<p:dataTable id="DTableA" var="dataObject" value="#{dataTableBean.objectList}" paginator="true" rows="10" rowKey="#{dataObject.id}" 
             paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
             rowsPerPageTemplate="5,10,15,25,50" reflow="true">

编辑2

以下@Jasper de Vries答案没有解决我的问题,因为发布的答案有些不推荐。Primefaces 6.2的主选择器不正确。

请参见以下选择器:

.ui-paginator > span:before, .ui-sortable-column-icon:before {
    font-family: FontAwesome; color: #fff;
}

.用户界面分页器

此外,我还必须用以下内容替换排序插入符号图标:

.ui-icon-carat-2-n-s.ui-icon-triangle-1-n:before {
    content: "\f0d8";
}

.ui-icon-carat-2-n-s.ui-icon-triangle-1-s:before {
    content: "\f0d7";
}

并调整其大小:

.ui-sortable-column-icon {
    height: 20px;
}

还有我问题的第二部分

是否也可以将(150中的1个)修改为我的语言环境?

还没有得到答复。

共有1个答案

逄兴昌
2023-03-14

解决方案

当我这样写css时,我终于明白了发生了什么:

div.ui-paginator > a.ui-paginator-prev > .ui-icon.ui-icon-seek-prev {
    text-indent: 0;
}

div.ui-paginator > a.ui-paginator-prev > .ui-icon.ui-icon-seek-prev::before {
    font-family: FontAwesome;
    content: "\f048";
} 

分页的每个图标都应该替换为中的FontAwSeries图标。

有趣的是,Primeface的图标类被放置在中。

<a href="#" class="ui-paginator-next ui-state-default ui-corner-all" aria-label="Next Page" tabindex="0">
    <span class="ui-icon ui-icon-seek-next">N</span>
</a>

修改的选择器在这里起作用。示例CSS由@Jasper de Vries提供。我编辑的用于分页的CSS如下所示:

.ui-paginator.ui-paginator-top.ui-widget-header.ui-corner-top,
.ui-paginator.ui-paginator-bottom.ui-widget-header.ui-corner-bottom,
.ui-paginator a,
.ui-paginator a:hover {
    background: none;
    background-image: none;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
}

.ui-paginator > a {
    width: 32px;
    height: 32px; 
}

.ui-paginator a,
.ui-paginator a:hover {
    border: none;
    -moz-border-radius: 0;
    -webkit-border-radius: 0;
    border-radius: 0;
    padding: 3px 0px 0px 0px;
    color: #fff;
}

.ui-paginator a {
    background-color: #1E88E5;
}

.ui-paginator a:hover {
    background-color: #1565C0;
}

.ui-paginator a,
.ui-sortable-column-icon:before {
    font-family: FontAwesome;
}

.ui-sortable-column-icon.ui-icon {
    background-image: none; 
    text-indent: 0;
    margin: 0 0 0 .5em;
    height: 20px;
}

.ui-paginator span span, 
.ui-paginator a span { 
    display: none; 
}

.ui-paginator .ui-paginator-first:before { 
    content: "\f048";
}

.ui-paginator .ui-paginator-prev:before { 
    content: "\f04a";
}

.ui-paginator .ui-paginator-next:before { 
    content: "\f04e";
}

.ui-paginator .ui-paginator-last:before { 
    content: "\f051";
}

.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s.ui-icon-triangle-1-n,
.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s.ui-icon-triangle-1-s {
    margin: 0px 0px 0px 0px;
}

.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s.ui-icon-triangle-1-n {
    top: -2px;
}

.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s.ui-icon-triangle-1-s {
    top: 4px;
}

.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s:before { 
    content: "\f0dc"; 
}

.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s.ui-icon-triangle-1-n:before {
    content: "\f0d8";
}

.ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s.ui-icon-triangle-1-s:before {
    content: "\f0d7";
}

感谢@Jasper de Vries和@Kukeltje的帮助。

 类似资料:
  • 我开始在我的项目中使用primefaces,我马上就遇到了问题。我有一个列表,其中包含一些我用实体管理器从数据库中获取的东西,我在primefaces数据表的视图中显示了它。在我的后台bean中,我有:List getList(),在这里我使用实体管理器从数据库中检索记录,并立即返回。。 和myService: 我的豆子: 视图: 这种方式primefaces排序不起作用,我在堆栈上的某个地方读到

  • 我对图表有意见。js。 首先,我设置一个数据,然后当参数改变时,我想重新绑定整个图表。这是一项工作,但它就像一张图表,旧数据仍然落后于新数据。 首先- 在一个事件中- 我看到了这个解决方案图表。js加载全新的数据 但是我不喜欢这样。我在一个角度指示上下文中,所以这不是最好的方法。 我试过没有结果 更新()、删除数据()、清除()、销毁()等 这是我目前的指示 http://plnkr.co/edi

  • 问题内容: 我想代替标准单选按钮,对每个单选按钮使用不同的图像。对于选定状态,我希望在图像周围出现边框。 我尝试为单选按钮制作图像标签,然后隐藏该按钮,但是由于某种原因,这似乎破坏了功能。 有没有更简单/更好的方法? 问题答案: jQuery 演示源中的完整代码;

  • PrimeFaces的CommandButton允许指定图标: 但是,我需要根据JSF托管bean属性启用/禁用图标。 我试过了 这适用于选择不同的图标,但不允许完全禁用图标(即,在没有属性的情况下获得相同的渲染效果)。我可以在中返回一个空字符串,但PrimeFaces仍将渲染额外的

  • 我对使用PrimeFaces 3.4.1和JSF 2.1.6的dataTable有以下问题。第一次加载页面时,数据表中充满了数据库中的数据,但每当在页面上执行操作(编辑链接、数据表排序或过滤)时,数据表就会丢失其数据。DataTable包含来自此类的元素: 在dataTable上执行操作后进行调试时,我们只在envioDatasujeto字段上保留数据,元素上的其他所有数据都会丢失。 这是xhtm

  • 我正在使用primeface 3.5,我希望在以下问题上得到帮助: 我有一个选择模式为single的datatable,所选项目是绑定到对象,而不是特定对象属性上的对象。下面的示例代码: 在项目创建期间,我不会立即将项目持久化到数据库,而是维护一个项目列表,并在操作保存处理程序期间持久化整个列表。 问题是,对于每个新创建的项,我都没有生成对象id(在持久化时在数据库上自动完成),并且在表上选择行的

  • 我用的是Primefaces 5.2。 到目前为止,排序工作还不错,但如果我对其中一个表(我们称之为表a)进行排序,然后刷新页面(例如,通过激发h:commandButton),则会出现奇怪的行为,最后会出现NullPointerException。在这种情况下,所有表都有与表a相同的列高亮显示。此外,当我随后对表a以外的表进行排序时,就会出现以下异常:

  • 我有以下偏好列表。 我想用图像图标替换某些项目的单选按钮。例如,它可能是这样的: 我是列表偏好活动的新手。请给出一些建议?