我有一个小应用程序,我需要修复几个问题:
这种方式是可行的,但是它将N999放在顶部,而N1000和N1001甚至不存在,只是在分页之后才能找到几个页面。我怎样才能使更高的工作人数保持在顶端呢?基本上忽略第一个字母?谢谢
发布于 2013-06-01 23:15:08
1)如何做到这一点有两种选择。
第一个选项是将排序添加到模型,而不是直接添加到网格。
然后你可以使用:
$model->addField('foo')->sortable(true);
$model->setOrder('foo','desc');第二个选项(如果您希望或必须在网格级别这样做):
$grid->getColumn('foo')->makeSortable('-');
// or even (not sure, didn't test this)
$grid->makeSortable('-foo');2)不确定如何做到这一点,但您可以尝试以下方法之一:
发布于 2013-06-04 08:54:49
我建议你有一个单独的字段来分类。
首先在数据库和模型内部创建"foo_sort“字段。将其设置为系统字段,以便在默认情况下不会出现在UI中:
$model->addField('foo_sort')->system(true);
$model->setOrder('foo_sort');然后创建一个钩子,在保存模型之前计算字段的值:
$model->addHook('beforeSave',function($m){
$m['foo_sort']=substr(0,1,$m['foo']);
});您不需要做任何其他事情,可能需要手动更新数据库中的现有记录。此方法可用于维护排序字段的许多其他场景,例如从全文搜索数据中去掉HTML。
https://stackoverflow.com/questions/16840111
复制相似问题