我在Yii2中使用ActiveForm作为我的SearchModel。单击搜索按钮后,表单字段会记住以前的值,但会刷新SorterDropdown。
<?php echo SorterDropdown::widget(['sort' => $dataProvider->sort,
'label' => $model->sortedBy($dataProvider->sort->attributes),])
?>
SorterDropdown只是ButtonDropdown的包装器。 如何在表单子目录之后更新SorterDropdown以记住排序顺序(并显示它)?
class SorterDropdown extends LinkSorter
{
public $label;
protected function renderSortLinks()
{
$attributes = empty($this->attributes) ? array_keys($this->sort->attributes) : $this->attributes;
$links = [];
foreach ($attributes as $name) {
$links[] = Html::tag('li', $this->sort->link($name, ['tabindex' => '-1']));
}
if (empty($this->label))
$this->label = 'Sort';
return \yii\bootstrap\ButtonDropdown::widget([
'encodeLabel' => false,
'label' => $this->label,
'dropdown' => [
'items' => $links,
],
]);
}
答案 0 :(得分:0)
你应该在li元素中添加一些类,它表示它的活动状态和CSS文件中的特殊样式。