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

如何更改primefaces数据库排序图标

申昌勋
2023-03-14

我有一个选项卡视图,在每个选项卡视图中我有一个数据表。

<p:tabView orientation="left" id="myTabs" activeIndex="#{myBean.currentTabIndex}" dynamic="true" cache="false">
        <p:ajax event="tabChange" immediate="true" update="@form" listener="#{myBean.onTabChange}" />
            <p:tab id="vehicleTab"
                <ui:include src="/components/vehicle.xhtml" />
            </p:tab>
        ----------- other tabs --------------
    </p:tabView>
<p:dataTable id="myTable"  var="v" value="#{myBean.vehicles}"   rowIndexVar="rowIndex">
        <p:ajax event="sort" listener="#{myBean.sort}" />
        <p:column id="vehicleid" sortBy="#{myBean.object}"  sortFunction="#{myBean.sortVehicles}">
            <h:outputText value="v.id" />
        </p:column>
        <p:column id="type" sortBy="#{myBean.object}" sortFunction="#{myBean.sortVehicles}">
            <h:outputText value="v.typ" />
        </p:column>
        //other columns
    <p:dataTable    

当我调试代码时,我观察到,如果我单击column进行排序,就会调用datatable呈现器的类decode方法;

@override public void decode(FacesContext上下文,UIComponent组件){}

在此方法中

但是当我切换选项卡并返回时,并没有直接调用decode方法,而是调用encodeEnd方法,为所有列准备相同的排序图标。

这是早期的实现,有没有什么方法可以在不改变sortBy属性的情况下解决这个问题?

共有1个答案

公西岳
2023-03-14

我认为这类似于:P:DataTable在ajax刷新后丢失排序列和顺序

因为tabView的更改如果您使用的是真正的tabView,实际上每次更改Tab都是AJAX请求。

 类似资料:
  • 问题内容: 现在数据库已建立,我想将排序规则更改为。 PhpMyAdmin中是否有任何设置可以更改数据库,表,列的排序规则?而不是一一改变? 问题答案: 您需要单独转换每个表: (这也将转换列),或使用导出数据库,然后使用将其导入回来。

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

  • 当xhtml运行时,数据表会显示出来,但只有一列显示为可用于排序(即,标题中有向上/向下箭头图标)。 dataTable有两个问题: 只有一列(年份)显示为可用于排序。(Year是Car类中“int”类型的属性,而其他三列是String类型,因此问题的一个方面是String字段忽略了sortby=“#{Car.xxx}”标记。) 年份列实际上是不可排序的。点击年份标题的向上/向下箭头没有效果。当点

  • 问题内容: 我有一个查询sqlite3数据库,该数据库提供了已排序的数据。数据是根据“名称”列进行排序的。现在当我执行查询时 它提供了这样的数据。 表示正在考虑区分大小写的内容。我想要的方式如下 那么,对于必要的结果,我应该在sqlite3数据库中进行哪些更改? 相关如何在字符串比较时将Sqlite3设置为不区分大小写? 问题答案: SQLite数据类型文档讨论了用户定义的排序规则序列。具体来说,

  • 我使用的是PrimeFaces 2.2和JSF 2.0.3。 我有一个包含以下数据表的xhtml视图: ..具有以下背衬豆: 注意母亲姓名列上的“commandLink”和出生日期列上的“sortBy”。 我遇到了一个奇怪的问题,似乎仅限于IE,如果我按DOB对数据进行排序,然后分页到最后一页并单击表中最后一条记录的commandLink,它会触发两个action事件。第一个事件正确地报告了我单击

  • 我有一个p:dataTable,它存储已处理表单的结果,我执行以下操作: 填充表单值。 提交。 已填充数据表--对任何列进行筛选。 更改表单值。 提交。 使用新结果填充数据表。 对任意列排序--将显示来自#3的筛选结果。 我有一个用于筛选值的arraylist,但我没有在bean中对它做任何操作。提交时,我调用actionListener,该actionListener将dataTable强制转换