【问题标题】:CGridView change sorting methodCGridView改变排序方法
【发布时间】:2013-01-08 09:59:01
【问题描述】:

我是 Yii 框架的新手。我正在分析自动生成的 CRUD 视图。当我单击列标题进行排序时,它会再次重新加载数据,因此它比编写 jQuery 排序表的方式慢得多。如何改变这种行为。我不想每次对表格进行排序时都重新加载数据,只想对我现在拥有的内容进行排序。

【问题讨论】:

    标签: yii cgridview


    【解决方案1】:

    如果我理解正确,您只想对当前页面中的行进行排序,而不是对结果集中的所有行进行排序?我不确定我是否看到了它的用途,除非它是一个相当小的结果集。大多数用户都希望看到按列排序的整个结果集,而不仅仅是单个页面。

    CGridView 中没有内置任何东西可以在客户端上执行我不认为,但编写一个并不难

    $('table tr').each(function(){
        var me = $(this)
        if ( me.find('.columnToCompare').text() > me.find('.secondColumn').text() )
        {
             me.prev().insertBefore(me);
        }
    }
    

    打字很快,但希望你能明白要点。

    【讨论】:

    • 是的,我明白了。您的意思是 jQuery 只会对表的当前页面进行排序,它会没用吗?那没关系。我误解了分页数据的排序行为。是否可以将当前数据集保存在内存中,以便在排序一段时间后立即获得?
    • 为了能够在客户端上完全排序,您必须在第一次加载时检索所有记录。这可能是比每次从服务器获取更大的性能问题。 Yii 没有内置任何东西来执行此操作,因为它通常是效率最低的方法。如果您在从服务器获取数据时遇到性能问题,您可能应该调查并提出一个新问题。
    • 好的。谢谢你的回答。
    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 2011-11-29
    • 1970-01-01
    相关资源
    最近更新 更多