Class yii\grid\GridView
Inheritance | yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable, yii\base\ViewContextInterface |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/grid/GridView.php |
The GridView widget is used to display data in a grid.
It provides features like sorting, paging and also filtering the data.
A basic usage looks like the following:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'id',
'name',
'created_at:datetime',
// ...
],
]) ?>
The columns of the grid table are configured in terms of yii\grid\Column classes, which are configured via $columns.
The look and feel of a grid view can be customized using the large amount of properties.
For more details and usage information on GridView, see the guide article on data widgets.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$afterRow | Closure | An anonymous function that is called once AFTER rendering each data model. | yii\grid\GridView |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$beforeRow | Closure | An anonymous function that is called once BEFORE rendering each data model. | yii\grid\GridView |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component. This property is read-only. | yii\base\Component |
$caption | string | The caption of the grid table | yii\grid\GridView |
$captionOptions | array | The HTML attributes for the caption element. | yii\grid\GridView |
$columns | array | Grid column configuration. | yii\grid\GridView |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$dataColumnClass | string | The default data column class if the class name is not explicitly specified when configuring a data column. | yii\grid\GridView |
$dataProvider | yii\data\DataProviderInterface | The data provider for the view. | yii\widgets\BaseListView |
$emptyCell | string | The HTML display when the content of a cell is empty. | yii\grid\GridView |
$emptyText | string|false | The HTML content to be displayed when $dataProvider does not have any data. | yii\widgets\BaseListView |
$emptyTextOptions | array | The HTML attributes for the emptyText of the list view. | yii\widgets\BaseListView |
$filterErrorOptions | array | The options for rendering every filter error message. | yii\grid\GridView |
$filterErrorSummaryOptions | array | The options for rendering the filter error summary. | yii\grid\GridView |
$filterModel | yii\base\Model | The model that keeps the user-entered filter data. | yii\grid\GridView |
$filterOnFocusOut | boolean | Whatever to apply filters on losing focus. | yii\grid\GridView |
$filterPosition | string | Whether the filters should be displayed in the grid view. | yii\grid\GridView |
$filterRowOptions | array | The HTML attributes for the filter row element. | yii\grid\GridView |
$filterSelector | string | Additional jQuery selector for selecting filter input fields | yii\grid\GridView |
$filterUrl | string|array | The URL for returning the filtering result. | yii\grid\GridView |
$footerRowOptions | array | The HTML attributes for the table footer row. | yii\grid\GridView |
$formatter | array|yii\i18n\Formatter | The formatter used to format model attribute values into displayable texts. | yii\grid\GridView |
$headerRowOptions | array | The HTML attributes for the table header row. | yii\grid\GridView |
$id | string|null | ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. | yii\base\Widget |
$layout | string | The layout that determines how different sections of the grid view should be organized. | yii\grid\GridView |
$options | array | The HTML attributes for the container tag of the grid view. | yii\grid\GridView |
$pager | array | The configuration for the pager widget. | yii\widgets\BaseListView |
$placeFooterAfterBody | boolean | Whether to place footer after body in DOM if $showFooter is true | yii\grid\GridView |
$rowOptions | array|Closure | The HTML attributes for the table body rows. | yii\grid\GridView |
$showFooter | boolean | Whether to show the footer section of the grid table. | yii\grid\GridView |
$showHeader | boolean | Whether to show the header section of the grid table. | yii\grid\GridView |
$showOnEmpty | boolean | Whether to show the grid view if $dataProvider returns no data. | yii\grid\GridView |
$sorter | array | The configuration for the sorter widget. | yii\widgets\BaseListView |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$summary | string | The HTML content to be displayed as the summary of the list view. | yii\widgets\BaseListView |
$summaryOptions | array | The HTML attributes for the summary of the list view. | yii\widgets\BaseListView |
$tableOptions | array | The HTML attributes for the grid table element. | yii\grid\GridView |
$view | yii\web\View | The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. | yii\base\Widget |
$viewPath | string | The directory containing the view files for this widget. This property is read-only. | yii\base\Widget |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\BaseObject |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of an object property. | yii\base\BaseObject |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\BaseObject |
__set() | Sets value of an object property. | yii\base\BaseObject |
__unset() | Sets an object property to null. | yii\base\BaseObject |
afterRun() | This method is invoked right after a widget is executed. | yii\base\Widget |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeRun() | This method is invoked right before the widget is executed. | yii\base\Widget |
begin() | Begins a widget. | yii\base\Widget |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\BaseObject |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\BaseObject |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
end() | Ends a widget. | yii\base\Widget |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getId() | Returns the ID of the widget. | yii\base\Widget |
getView() | Returns the view object that can be used to render views or view files. | yii\base\Widget |
getViewPath() | yii\base\ViewContextInterface | |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\BaseObject |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\BaseObject |
init() | Initializes the grid view. | yii\grid\GridView |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
render() | Renders a view. | yii\base\Widget |
renderCaption() | Renders the caption element. | yii\grid\GridView |
renderColumnGroup() | Renders the column group HTML. | yii\grid\GridView |
renderEmpty() | Renders the HTML content indicating that the list view has no data. | yii\widgets\BaseListView |
renderErrors() | Renders validator errors of filter model. | yii\grid\GridView |
renderFile() | Renders a view file. | yii\base\Widget |
renderFilters() | Renders the filter. | yii\grid\GridView |
renderItems() | Renders the data models for the grid view. | yii\grid\GridView |
renderPager() | Renders the pager. | yii\widgets\BaseListView |
renderSection() | Renders a section of the specified name. | yii\grid\GridView |
renderSorter() | Renders the sorter. | yii\widgets\BaseListView |
renderSummary() | Renders the summary text. | yii\widgets\BaseListView |
renderTableBody() | Renders the table body. | yii\grid\GridView |
renderTableFooter() | Renders the table footer. | yii\grid\GridView |
renderTableHeader() | Renders the table header. | yii\grid\GridView |
renderTableRow() | Renders a table row with the given data model and key. | yii\grid\GridView |
run() | Runs the widget. | yii\grid\GridView |
setId() | Sets the ID of the widget. | yii\base\Widget |
setView() | Sets the view object to be used by this widget. | yii\base\Widget |
trigger() | Triggers an event. | yii\base\Component |
widget() | Creates a widget instance and runs it. | yii\base\Widget |
Protected Methods
Method | Description | Defined By |
---|---|---|
createDataColumn() | Creates a yii\grid\DataColumn object based on a string in the format of "attribute:format:label". | yii\grid\GridView |
getClientOptions() | Returns the options for the grid view JS widget. | yii\grid\GridView |
guessColumns() | This function tries to guess the columns to show from the given data if $columns are not explicitly specified. | yii\grid\GridView |
initColumns() | Creates column objects and initializes them. | yii\grid\GridView |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_RUN | yii\base\WidgetEvent | An event raised right after executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_BEFORE_RUN | yii\base\WidgetEvent | An event raised right before executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_INIT | yii\base\Event | An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) | yii\base\Widget |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
FILTER_POS_BODY | 'body' | yii\grid\GridView | |
FILTER_POS_FOOTER | 'footer' | yii\grid\GridView | |
FILTER_POS_HEADER | 'header' | yii\grid\GridView |
Property Details
An anonymous function that is called once AFTER rendering each data model. It should have the similar signature as $rowOptions. The return result of the function will be rendered directly.
An anonymous function that is called once BEFORE rendering each data model. It should have the similar signature as $rowOptions. The return result of the function will be rendered directly.
The caption of the grid table
See also $captionOptions.
The HTML attributes for the caption element.
See also:
- yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
- $caption
Grid column configuration. Each array element represents the configuration for one particular grid column. For example,
[
['class' => SerialColumn::className()],
[
'class' => DataColumn::className(), // this line is optional
'attribute' => 'name',
'format' => 'text',
'label' => 'Name',
],
['class' => CheckboxColumn::className()],
]
If a column is of class yii\grid\DataColumn, the "class" element can be omitted.
As a shortcut format, a string may be used to specify the configuration of a data column
which only contains attribute, format,
and/or label options: "attribute:format:label"
.
For example, the above "name" column can also be specified as: "name:text:Name"
.
Both "format" and "label" are optional. They will take default values if absent.
Using the shortcut format the configuration for columns in simple cases would look like this:
[
'id',
'amount:currency:Total Amount',
'created_at:datetime',
]
When using a $dataProvider with active records, you can also display values from related records,
e.g. the name
attribute of the author
relation:
// shortcut syntax
'author.name',
// full syntax
[
'attribute' => 'author.name',
// ...
]
The default data column class if the class name is not explicitly specified when configuring a data column. Defaults to 'yii\grid\DataColumn'.
The HTML display when the content of a cell is empty. This property is used to render cells that have no defined content, e.g. empty footer or filter cells.
Note that this is not used by the yii\grid\DataColumn if a data item is null
. In that case
the nullDisplay property of the $formatter will
be used to indicate an empty data value.
The options for rendering every filter error message. This is mainly used by yii\helpers\Html::error() when rendering an error message next to every filter input field.
The options for rendering the filter error summary. Please refer to yii\helpers\Html::errorSummary() for more details about how to specify the options.
See also renderErrors().
The model that keeps the user-entered filter data. When this property is set, the grid view will enable column-based filtering. Each data column by default will display a text field at the top that users can fill in to filter the data.
Note that in order to show an input field for filtering, a column must have its yii\grid\DataColumn::$attribute property set and the attribute should be active in the current scenario of $filterModel or have yii\grid\DataColumn::$filter set as the HTML code for the input field.
When this property is not set (null) the filtering feature is disabled.
Whatever to apply filters on losing focus. Leaves an ability to manage filters via yiiGridView JS
Whether the filters should be displayed in the grid view. Valid values include:
- FILTER_POS_HEADER: the filters will be displayed on top of each column's header cell.
- FILTER_POS_BODY: the filters will be displayed right below each column's header cell.
- FILTER_POS_FOOTER: the filters will be displayed below each column's footer cell.
The HTML attributes for the filter row element.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
Additional jQuery selector for selecting filter input fields
The URL for returning the filtering result. yii\helpers\Url::to() will be called to normalize the URL. If not set, the current controller action will be used. When the user makes change to any filter input, the current filtering inputs will be appended as GET parameters to this URL.
The HTML attributes for the table footer row.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
The formatter used to format model attribute values into displayable texts. This can be either an instance of yii\i18n\Formatter or an configuration array for creating the yii\i18n\Formatter instance. If this property is not set, the "formatter" application component will be used.
The HTML attributes for the table header row.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
The layout that determines how different sections of the grid view should be organized. The following tokens will be replaced with the corresponding section contents:
{summary}
: the summary section. See renderSummary().{errors}
: the filter model error summary. See renderErrors().{items}
: the list items. See renderItems().{sorter}
: the sorter. See renderSorter().{pager}
: the pager. See renderPager().
The HTML attributes for the container tag of the grid view. The "tag" element specifies the tag name of the container element and defaults to "div".
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
Whether to place footer after body in DOM if $showFooter is true
The HTML attributes for the table body rows. This can be either an array specifying the common HTML attributes for all body rows, or an anonymous function that returns an array of the HTML attributes. The anonymous function will be called once for every data model returned by $dataProvider. It should have the following signature:
function ($model, $key, $index, $grid)
$model
: the current data model being rendered$key
: the key value associated with the current data model$index
: the zero-based index of the data model in the model array returned by $dataProvider$grid
: the GridView object
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
Whether to show the footer section of the grid table.
Whether to show the header section of the grid table.
Whether to show the grid view if $dataProvider returns no data.
The HTML attributes for the grid table element.
See also yii\helpers\Html::renderTagAttributes() for details on how attributes are being rendered.
Method Details
Creates a yii\grid\DataColumn object based on a string in the format of "attribute:format:label".
protected yii\grid\DataColumn createDataColumn ( $text ) | ||
$text | string | The column specification string |
return | yii\grid\DataColumn | The column instance |
---|---|---|
throws | yii\base\InvalidConfigException | if the column specification is invalid |
Returns the options for the grid view JS widget.
protected array getClientOptions ( ) | ||
return | array | The options |
---|
This function tries to guess the columns to show from the given data if $columns are not explicitly specified.
protected void guessColumns ( ) |
Initializes the grid view.
This method will initialize required property values and instantiate $columns objects.
public void init ( ) |
Creates column objects and initializes them.
protected void initColumns ( ) |
Renders the caption element.
public boolean|string renderCaption ( ) | ||
return | boolean|string | The rendered caption element or |
---|
Renders the column group HTML.
public boolean|string renderColumnGroup ( ) | ||
return | boolean|string | The column group HTML or |
---|
Renders validator errors of filter model.
public string renderErrors ( ) | ||
return | string | The rendering result. |
---|
Renders the filter.
public string renderFilters ( ) | ||
return | string | The rendering result. |
---|
Renders the data models for the grid view.
public string renderItems ( ) | ||
return | string | The HTML code of table |
---|
Renders a section of the specified name.
If the named section is not supported, false will be returned.
public string|boolean renderSection ( $name ) | ||
$name | string | The section name, e.g., |
return | string|boolean | The rendering result of the section, or false if the named section is not supported. |
---|
Renders the table body.
public string renderTableBody ( ) | ||
return | string | The rendering result. |
---|
Renders the table footer.
public string renderTableFooter ( ) | ||
return | string | The rendering result. |
---|
Renders the table header.
public string renderTableHeader ( ) | ||
return | string | The rendering result. |
---|
Renders a table row with the given data model and key.
public string renderTableRow ( $model, $key, $index ) | ||
$model | mixed | The data model to be rendered |
$key | mixed | The key associated with the data model |
$index | integer | The zero-based index of the data model among the model array returned by $dataProvider. |
return | string | The rendering result |
---|
Runs the widget.
public void run ( ) |