簡體   English   中英

自定義排序上/下Yii CGridView按鈕

[英]customize sort up/down Yii CGridView button

因此,我想在CGridView中創建一個新按鈕。 這是向上和向下箭頭按鈕,將用於對我的文章進行排序。 我已經閱讀了很多有關如何制作這種按鈕的信息。 此鏈接中,我已經閱讀了有關如何使用此CGridView按鈕的Wiki。

現在我認為這是:

array(
                'header' => 'Action',
                'class' => 'CButtonColumn',
                'template' => '{moveup}{movedown}{view}{delete}',
                'htmlOptions' => array('style' => 'width: 68px'),
                'buttons' => array
                    (
                    'moveup' => array
                        (
                        'label' => 'Move Up',
                        'imageUrl' => Yii::app()->request->baseUrl . '/images/move_up.png',
                        'url' => 'Yii::app()->createUrl("KB/moveup", array("id"=>$data->KBID))',
                        'visible' => '$data->KBORDER == KB::model()->getMax()',
                    ),
                    'movedown' => array
                        (
                        'label' => 'Move Down',
                        'imageUrl' => Yii::app()->request->baseUrl . '/images/move_down.png',
                        'url' => 'Yii::app()->createUrl("KB/movedown", array("id"=>$data->KBID))',
                        'visible' => '$data->KBORDER == KB::model()->getMin()',
                    ),
                ),
            ),

這是我模型中的:

    public function getMax(){
            $sql = 'SELECT MAX(KBORDER) FROM KB';
            $max = Yii::app()->db->createCommand($sql);
            $max->queryAll();
            return $max;
        }

        public function getMin(){
            $sql = 'SELECT MIN(KBORDER) FROM KB';
            $min = Yii::app()->db->createCommand($sql);
            $min->queryAll();
            return $min;

}

所有這些代碼都運行良好。 除了能見度。 我要使向上按鈕在KBORDER的最大值或位置位於第一位時不可見。 對於下移按鈕,當其具有最低KBORDER值或位於最后位置時,它也應該是不可見的。 但是,當我將該代碼置於“可見”狀態時,所有按鈕都是無敵的。 所以我的問題是, 如何使我的請求發生?

提前致謝

首先, queryAll返回一個數組。 文件資料 因此,您可能應該使用queryScalar ,並且應該從函數而不是命令對象返回結果。

 return $max->queryScalar();

您也可以在Yii中使用統計查詢

其次,當按鈕不在頂部或底部時,您要顯示按鈕,因此應取消=

'visible'=>'$ data-> KBORDER!= KB :: model()-> getMax()',

'visible'=>'$ data-> KBORDER!= KB :: model()-> getMin()',

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM