Spec-Zone.ru › Yii 1.1

CCheckBoxColumn

Пакет zii.widgets.grid
Наследование класс CCheckBoxColumn » CGridColumn » CComponent
С 1.1
Исходный код framework/zii/widgets/grid/CCheckBoxColumn.php
CCheckBoxColumn представляет собой столбец грида с полями для выбора.

CCheckBoxColumn поддерживает отсутствие выбора (только для чтения), одиночный выбор и множественный выбор. Режим определяется по selectableRows. В режиме множественного выбора заголовок ячейки будет содержать дополнительное поле для выбора, щелчок по которому установит или сбросит флажки во всех ячейках данных. Ячейку заголовка можно настроить с помощью headerTemplate.

Кроме того, выбор ячейки может выбрать строку в гриде (в зависимости от CGridView::selectableRows) если selectableRows равно null (по умолчанию).

По умолчанию, поля для выбора в ячейках данных будут иметь значения, совпадающие с ключами модели данных. Это можно изменить, задав name или value.

Общественные свойства

Свойство Тип Описание Определено
checkBoxHtmlOptions массив HTML-опции для полей для выбора. CCheckBoxColumn
checked строка PHP-выражение, которое будет вычислено для каждой ячейки данных и результат которого определит, будет ли поле для выбора в каждой ячейке данных отмечено. CCheckBoxColumn
cssClassExpression строка PHP-выражение, которое вычисляется для каждой ячейки данных и результат которого используется в качестве имени класса CSS для ячейки данных. CGridColumn
disabled строка PHP-выражение, которое будет вычислено для каждой ячейки данных и результат которого определит, будет ли поле для выбора в каждой ячейке данных отключено. CCheckBoxColumn
filterCellContent строка Возвращает содержимое ячейки фильтра. CGridColumn
filterHtmlOptions массив HTML-опции для тега ячейки фильтра. CGridColumn
footer строка Текст ячейки подвала. CGridColumn
footerCellContent строка Возвращает содержимое ячейки подвала. CGridColumn
footerHtmlOptions массив HTML-опции для тега ячейки подвала. CCheckBoxColumn
grid CGridView Объект представления грида, владеющий этим столбцом. CGridColumn
hasFooter boolean Указывает, содержит ли этот столбец ячейку подвала. CGridColumn
header строка Текст ячейки заголовка. CGridColumn
headerCellContent строка Возвращает содержимое ячейки заголовка. CCheckBoxColumn
headerHtmlOptions массив HTML-опции для тега ячейки заголовка. CCheckBoxColumn
headerTemplate строка Шаблон для управления представлением ячейки заголовка. CCheckBoxColumn
htmlOptions массив HTML-опции для тегов ячеек данных. CCheckBoxColumn
id строка Идентификатор этого столбца. CGridColumn
name строка Имя атрибута модели данных. CCheckBoxColumn
selectableRows целое число Количество строк, которые могут быть выбраны. CCheckBoxColumn
value строка PHP-выражение, которое будет вычислено для каждой ячейки данных, и результат которого будет отображен в каждой ячейке данных как значение поля для выбора. CCheckBoxColumn
visible boolean Указывает, виден ли этот столбец. CGridColumn

Публичные методы

Метод Описание Определено в
__call() Вызывает метод с заданным именем, который не является методом класса. CComponent
__construct() Конструктор. CGridColumn
__get() Возвращает значение свойства, список обработчиков событий или поведение по имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
detachBehavior() Открепляет поведение от компонента. CComponent
detachBehaviors() Открепляет все поведения от компонента. CComponent
detachEventHandler() Открепляет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все присоединенные поведения к этому компоненту. CComponent
enableBehavior() Включает прикрепленное поведение. CComponent
enableBehaviors() Включает все прикрепленные к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет PHP выражение или обратный вызов в контексте этого компонента. CComponent
getDataCellContent() Возвращает содержимое ячейки данных. CCheckBoxColumn
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
getFilterCellContent() Возвращает содержимое ячейки фильтра. CGridColumn
getFooterCellContent() Возвращает содержимое ячейки подвала. CGridColumn
getHasFooter() Возвращает, имеет ли этот столбец ячейку подвала. Это определяется на основе того, задан ли footer. CGridColumn
getHeaderCellContent() Возвращает содержимое ячейки заголовка. CCheckBoxColumn
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединенные обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует столбец. CCheckBoxColumn
raiseEvent() Вызывает событие. CComponent
renderDataCell() Отображает ячейку данных. CGridColumn
renderFilterCell() Отображает ячейку фильтра. CGridColumn
renderFooterCell() Отображает ячейку подвала. CGridColumn
renderHeaderCell() Отображает ячейку заголовка. CGridColumn

Защищенные методы

Метод Описание Определено в
renderDataCellContent() Отображает содержимое ячейки данных. CGridColumn
renderFilterCellContent() Отображает содержимое ячейки фильтра. CGridColumn
renderFooterCellContent() Отображает содержимое ячейки подвала. CGridColumn
renderHeaderCellContent() Отображает содержимое ячейки заголовка. CGridColumn

Подробности свойств

checkBoxHtmlOptions свойство

public array $checkBoxHtmlOptions;

параметры HTML для чекбоксов.

checked свойство (доступно с версии v1.1.4)

public string $checked;

PHP выражение, которое будет вычисляться для каждой ячейки данных, и результат которого определит, установлен ли флажок для каждой ячейки данных. В этом выражении вы можете использовать следующие переменные:

  • $row номер строки (нумерация с нуля)
  • $data модель данных для строки
  • $this объект столбца
PHP выражение будет вычислено с помощью evaluateExpression.

PHP выражение может быть любым PHP кодом, который имеет значение. Чтобы узнать больше о том, что такое выражение, обратитесь к руководству php.

disabled свойство (доступно с версии v1.1.13)

public string $disabled;

PHP выражение, которое будет вычисляться для каждой ячейки данных, и результат которого определит, отключен ли флажок для каждой ячейки данных. В этом выражении вы можете использовать следующие переменные:

  • $row номер строки (нумерация с нуля)
  • $data модель данных для строки
  • $this объект столбца
PHP выражение будет вычислено с помощью evaluateExpression.

PHP выражение может быть любым PHP кодом, который имеет значение. Чтобы узнать больше о том, что такое выражение, обратитесь к руководству php.

Обратите внимание, что результат выражения перепишет значение, установленное с помощью checkBoxHtmlOptions['disabled'].

footerHtmlOptions свойство

public array $footerHtmlOptions;

параметры HTML для тега ячейки подвала.

headerCellContent свойство только для чтения (доступно с версии v1.1.16)

public string getHeaderCellContent()

Возвращает содержимое ячейки заголовка. Этот метод отобразит флажок в заголовке, когда selectableRows больше 1 или в случае, когда selectableRows равно null, а CGridView::selectableRows больше 1.

headerHtmlOptions свойство

public array $headerHtmlOptions;

параметры HTML для тега ячейки заголовка.

headerTemplate свойство (доступно начиная с v1.1.11)

public string $headerTemplate;

шаблон, используемый для управления представлением ячейки заголовка. Токен "{item}" распознаётся и заменяется на чекбокс «Выбрать все». По умолчанию, в режиме множественного выбора, ячейка заголовка отображает дополнительный чекбокс, нажатие на который устанавливает или снимает отметку со всех чекбоксов в ячейках данных. Подробнее см. selectableRows.

htmlOptions свойство

public array $htmlOptions;

HTML-параметры тегов ячейки данных.

name свойство

public string $name;

имя атрибута модели данных. Соответствующее значение атрибута будет отображаться в каждой ячейке данных как значение чекбокса. Обратите внимание, что если указано value, это свойство будет проигнорировано.

См. также

  • value

selectableRows свойство (доступно начиная с v1.1.6)

public integer $selectableRows;

количество строк, которые могут быть выбраны. Возможные значения:

  • 0 — состояние чекбокса нельзя изменить (только чтение)
  • 1 — может быть выбрана только одна строка. Установка отметки в чекбоксе не влияет на выбор строки
  • 2 или более — можно выбрать несколько чекбоксов. Установка отметки в чекбоксе не влияет на выбор строки
  • null — используется CGridView::selectableRows для управления количеством выбираемых чекбоксов. Установка отметки в чекбоксе также выберет строку.
Вы также можете вызвать JavaScript-функцию $(gridID).yiiGridView('getChecked', columnID) для получения значений ключей выбранных строк.

value свойство

public string $value;

PHP-выражение, которое будет вычислено для каждой ячейки данных, и результат которого будет отображен в каждой ячейке данных как значение чекбокса. В этом выражении вы можете использовать следующие переменные:

  • $row номер строки (нумерация с нуля)
  • $data модель данных для строки
  • $this объект столбца
PHP-выражение будет вычислено с помощью evaluateExpression.

PHP-выражение может быть любым PHP-кодом, имеющим значение. Чтобы узнать больше о том, что такое выражение, пожалуйста, обратитесь к руководству по PHP.

Подробное описание методов

getDataCellContent() метод (доступен начиная с v1.1.16)

public string getDataCellContent(integer $row)
$row целое число номер строки (нумерация с нуля)
{return} строка содержимое ячейки данных.
Исходный код: framework/zii/widgets/grid/CCheckBoxColumn.php#220 (показать)
public function getDataCellContent($row)
{
    
$data=$this->grid->dataProvider->data[$row];
    if(
$this->value!==null)
        
$value=$this->evaluateExpression($this->value,array('data'=>$data,'row'=>$row));
    elseif(
$this->name!==null)
        
$value=CHtml::value($data,$this->name);
    else
        
$value=$this->grid->dataProvider->keys[$row];

    
$checked = false;
    if(
$this->checked!==null)
        
$checked=$this->evaluateExpression($this->checked,array('data'=>$data,'row'=>$row));

    
$options=$this->checkBoxHtmlOptions;
    if(
$this->disabled!==null)
        
$options['disabled']=$this->evaluateExpression($this->disabled,array('data'=>$data,'row'=>$row));

    
$name=$options['name'];
    unset(
$options['name']);
    
$options['value']=$value;
    
$options['id']=$this->id.'_'.$row;
    return 
CHtml::checkBox($name,$checked,$options);
}

Возвращает содержимое ячейки данных. Данный метод отображает чекбокс в ячейке данных.

getHeaderCellContent() метод (доступен начиная с v1.1.16)

public string getHeaderCellContent()
{return} строка содержимое ячейки заголовка.
Исходный код: framework/zii/widgets/grid/CCheckBoxColumn.php#196 (показать)
public function getHeaderCellContent()
{
    if(
trim($this->headerTemplate)==='')
        return 
$this->grid->blankDisplay;

    if(
$this->selectableRows===null && $this->grid->selectableRows>1)
        
$item=CHtml::checkBox($this->id.'_all',false,array('class'=>'select-on-check-all'));
    elseif(
$this->selectableRows>1)
        
$item=CHtml::checkBox($this->id.'_all',false);
    else
        
$item=parent::getHeaderCellContent();

    return 
strtr($this->headerTemplate,array(
        
'{item}'=>$item,
    ));
}

Возвращает содержимое ячейки заголовка. Этот метод отобразит чекбокс в заголовке, когда selectableRows больше 1 или в случае, когда selectableRows равно null, а CGridView::selectableRows больше 1.

init() метод

public void init()
Исходный код: framework/zii/widgets/grid/CCheckBoxColumn.php#131 (показать)
public function init()
{
    if(isset(
$this->checkBoxHtmlOptions['name']))
        
$name=$this->checkBoxHtmlOptions['name'];
    else
    {
        
$name=$this->id;
        if(
substr($name,-2)!=='[]')
            
$name.='[]';
        
$this->checkBoxHtmlOptions['name']=$name;
    }
    
$name=strtr($name,array('['=>"\\[",']'=>"\\]"));

    if(
$this->selectableRows===null)
    {
        if(isset(
$this->checkBoxHtmlOptions['class']))
            
$this->checkBoxHtmlOptions['class'].=' select-on-check';
        else
            
$this->checkBoxHtmlOptions['class']='select-on-check';
        return;
    }

    
$cball=$cbcode='';
    if(
$this->selectableRows==0)
    {
        
//.. read only
        
$cbcode="return false;";
    }
    elseif(
$this->selectableRows==1)
    {
        
//.. only one can be checked, uncheck all other
        
$cbcode="jQuery(\"input:not(#\"+this.id+\")[name='$name']\").prop('checked',false);";
    }
    elseif(
strpos($this->headerTemplate,'{item}')!==false)
    {
        
//.. process check/uncheck all
        
$cball=<<<CBALL
jQuery(document).on('click','#{$this->id}_all',function() {
var checked=this.checked;
jQuery("input[name='
$name']:enabled").each(function() {this.checked=checked;});
});

CBALL;
        
$cbcode="jQuery('#{$this->id}_all').prop('checked', jQuery(\"input[name='$name']\").length==jQuery(\"input[name='$name']:checked\").length);";
    }

    if(
$cbcode!=='')
    {
        
$js=$cball;
        
$js.=<<<EOD
jQuery(document).on('click', "input[name='$name']", function() {
$cbcode
});
EOD;
        
Yii::app()->getClientScript()->registerScript(__CLASS__.'#'.$this->id,$js);
    }
}

Инициализирует столбец. Этот метод регистрирует необходимый клиентский скрипт для столбца чекбоксов.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CCheckBoxColumn

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API