Class yii\grid\DataColumn
| 继承 | yii\grid\DataColumn » yii\grid\Column » yii\base\BaseObject |
|---|---|
| 实现 | yii\base\Configurable |
| 可用版本自 | 2.0 |
| 源码 | https://github.com/yiichina/yii2/blob/api/framework/grid/DataColumn.php |
DataColumn 是 yii\grid\GridView 小部件的默认列类型。
它用于显示数据列并且可以使用 sorting 和 filtering。
简单的数据列定义是指 GridView 数据提供者的数据模型中的属性。 属性的名称由 $attribute 来指定。
通过设置 $value 和 $label,标题和单元格内容可以自定义。
数据列区分 data cell value 和 data cell content。 单元格值是可以用于计算的未格式化的值, 但实际单元格内容是该值的 formatted 版本, 其可以包含 HTML 标签。
有关于 DataColumn 更多的细节和用法,请参阅 guide article on data widgets。
公共属性
| 属性 | 类型 | 描述 | 被定义在 |
|---|---|---|---|
| $attribute | string | 与此列关联的属性名称。 如果没有指定 $content 也没有指定 $value,则将从每个数据模型中检索并显示指定属性的值。 此外,如果 $label 没有指定,将显示与该属性关联的标签。 | yii\grid\DataColumn |
| $content | callable | 这是用于生成每个单元格内容的回调函数。
函数的写法如下:function ($model, $key, $index, $column)。
其中,$model,$key 和 $index 表示当前渲染行的模型,键和索引,
$column 是对 yii\grid\Column 对象的引用。 |
yii\grid\Column |
| $contentOptions | array|Closure | 数据单元标签的 HTML 属性。
这可以是属性数组或返回此类数组的匿名函数(Closure)。
函数的写法应该如下:function ($model, $key, $index, $column)。
其中,$model,$key 和 $index 表示当前渲染行的模型、键和索引,
$column 是对 yii\grid\Column 对象的引用。
函数可用于根据该行中的数据将不同的属性分配给不同的行。 |
yii\grid\Column |
| $enableSorting | boolean | 是否允许按此列排序。如果为 true, 并且在 yii\grid\GridView::$dataProvider 的排序定义中找到 $attribute, 则此列的标题单元格将包含可能在单击时触发排序的链接。 | yii\grid\DataColumn |
| $encodeLabel | boolean | 标题标签是否是 HTML 编码的。 | yii\grid\DataColumn |
| $filter | string|array|null|false | HTML 代码表示用于此数据列的过滤器输入(e.g. 文本字段,下拉列表)。 仅当 yii\grid\GridView::$filterModel 设置时,此属性才有效。 - 如果未设置此属性,将生成一个文本字段作为过滤器输入, 其属性由 $filterInputOptions 来定义。 有关于如何生成输入标记的详细信息,请参阅 yii\helpers\BaseHtml::activeInput()。 - 如果属性是一个数组, 将生成一个下拉列表,该列表使用此属性值作为列表选项。 - 如果你不想要此数据列的过滤器,请将此值设置为false。 | yii\grid\DataColumn |
| $filterInputOptions | array | 过滤器输入字段的 HTML 属性。
此属性与 $filter 属性结合使用。当 $filter 没有设置或者是一个数组,
此属性将用于渲染生成的过滤器输入字段的 HTML 属性。
Empty id in the default value ensures that id would not be obtained from the model attribute thus
providing better performance. |
yii\grid\DataColumn |
| $filterOptions | array | 筛选单元格标签的 HTML 属性。 | yii\grid\Column |
| $footer | string | 页脚单元格内容。注意,它不是 HTML 编码的。 | yii\grid\Column |
| $footerOptions | array | The 页脚单元格标签的 HTML 属性。 | yii\grid\Column |
| $format | string|array|Closure | 每个数据模型的值应该以何种格式显示(e.g. "raw","text","html",['date', 'php:Y-m-d'])。
支持的格式由 yii\grid\GridView 使用的 formatter 来确定。
默认的格式是 "text",当 GridView 的 yii\i18n\Formatter 用作 formatter 时,
该值将格式化为 HTML 编码的纯文本。 |
yii\grid\DataColumn |
| $grid | yii\grid\GridView | 拥有此列的网格视图对象。 | yii\grid\Column |
| $header | string | 标题单元格内容。注意,它不是 HTML 编码的。 | yii\grid\Column |
| $headerOptions | array | 标题单元格标签的 HTML 属性。 | yii\grid\Column |
| $label | string | Label 在 header cell 中显示, 并且未在此列启用排序时用作排序链接的标签。 如果没有设置,并且 GridView 数据提供器是 yii\db\ActiveRecord 的实例, 标签将使用 yii\db\ActiveRecord::getAttributeLabel() 来确定。 否则 yii\helpers\Inflector::camel2words() 将用于获取标签。 | yii\grid\DataColumn |
| $options | array | 列组标签的 HTML 属性。 | yii\grid\Column |
| $sortLinkOptions | array | 当此列启用排序时, 由 yii\data\Sort::link() 生成的标题单元格中的链接标记的 HMTL 属性。 | yii\grid\DataColumn |
| $value | string|Closure | 匿名函数或用于确定要在当前列中显示的值的字符串。
如果这是一个匿名函数, 每一行都将调用它,返回值将用作为每个数据模型显示的值。
函数的写法应该为:function ($model, $key, $index, $column)。
其中,$model,$key 和 $index 表示当前渲染行的模型,键和索引,
$column 是对 yii\grid\DataColumn 对象的引用。
你还可以将此属性设置为表示要在此列中显示的属性名称的字符串。
当要显示的属性与用于排序和过滤的 $attribute 不同时,
可以使用此选项。
如果没有设置,将使用 $model[$attribute] 来获取值,其中 $attribute 是 $attribute 的值。 |
yii\grid\DataColumn |
| $visible | boolean | 列是否可见。默认为 true。 | yii\grid\Column |
公共方法
| 方法 | 描述 | 被定义在 |
|---|---|---|
| __call() | Calls the named method which is not a class method. | yii\base\BaseObject |
| __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 |
| 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 |
| getDataCellValue() | 返回数据单元格值。 | yii\grid\DataColumn |
| 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 object. | yii\base\BaseObject |
| renderDataCell() | 渲染数据单元格。 | yii\grid\Column |
| renderFilterCell() | Renders the filter cell. | yii\grid\Column |
| renderFooterCell() | 渲染标题单元格。 | yii\grid\Column |
| renderHeaderCell() | Renders the header cell. | yii\grid\Column |
受保护的方法
| 方法 | 描述 | 被定义在 |
|---|---|---|
| getHeaderCellLabel() | {@inheritdoc] | yii\grid\DataColumn |
| renderDataCellContent() | 渲染数据单元格内容。 | yii\grid\DataColumn |
| renderFilterCellContent() | 渲染过滤单元格内容。 默认实现只是渲染一个空格。 可以重写此方法以自定义过滤器单元的渲染(如果有)。 | yii\grid\DataColumn |
| renderFooterCellContent() | 渲染页脚单元格内容。 默认实现只是渲染 $footer。 可以重写此方法以自定义页脚单元格的渲染。 | yii\grid\Column |
| renderHeaderCellContent() | 渲染过滤单元格。 默认实现只是渲染 $header。 可以重写此方法以自定义标题单元格的渲染。 | yii\grid\DataColumn |
属性详情
是否允许按此列排序。如果为 true, 并且在 yii\grid\GridView::$dataProvider 的排序定义中找到 $attribute, 则此列的标题单元格将包含可能在单击时触发排序的链接。
标题标签是否是 HTML 编码的。
参见 $label.
HTML 代码表示用于此数据列的过滤器输入(e.g. 文本字段,下拉列表)。 仅当 yii\grid\GridView::$filterModel 设置时,此属性才有效。
- 如果未设置此属性,将生成一个文本字段作为过滤器输入, 其属性由 $filterInputOptions 来定义。 有关于如何生成输入标记的详细信息,请参阅 yii\helpers\BaseHtml::activeInput()。
- 如果属性是一个数组, 将生成一个下拉列表,该列表使用此属性值作为列表选项。
- 如果你不想要此数据列的过滤器,请将此值设置为false。
过滤器输入字段的 HTML 属性。 此属性与 $filter 属性结合使用。当 $filter 没有设置或者是一个数组, 此属性将用于渲染生成的过滤器输入字段的 HTML 属性。
Empty id in the default value ensures that id would not be obtained from the model attribute thus
providing better performance.
参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息。.
每个数据模型的值应该以何种格式显示(e.g. "raw","text","html",['date', 'php:Y-m-d'])。
支持的格式由 yii\grid\GridView 使用的 formatter 来确定。
默认的格式是 "text",当 GridView 的 yii\i18n\Formatter 用作 formatter 时,
该值将格式化为 HTML 编码的纯文本。
Label 在 header cell 中显示, 并且未在此列启用排序时用作排序链接的标签。 如果没有设置,并且 GridView 数据提供器是 yii\db\ActiveRecord 的实例, 标签将使用 yii\db\ActiveRecord::getAttributeLabel() 来确定。 否则 yii\helpers\Inflector::camel2words() 将用于获取标签。
当此列启用排序时, 由 yii\data\Sort::link() 生成的标题单元格中的链接标记的 HMTL 属性。
参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息。.
匿名函数或用于确定要在当前列中显示的值的字符串。
如果这是一个匿名函数, 每一行都将调用它,返回值将用作为每个数据模型显示的值。
函数的写法应该为:function ($model, $key, $index, $column)。
其中,$model,$key 和 $index 表示当前渲染行的模型,键和索引,
$column 是对 yii\grid\DataColumn 对象的引用。
你还可以将此属性设置为表示要在此列中显示的属性名称的字符串。 当要显示的属性与用于排序和过滤的 $attribute 不同时, 可以使用此选项。
如果没有设置,将使用 $model[$attribute] 来获取值,其中 $attribute 是 $attribute 的值。
方法详情
返回数据单元格值。
| public string getDataCellValue($model, $key, $index) | ||
| $model | mixed | 数据模型 |
| $key | mixed | 与数据模型相关的键 |
| $index | integer | 由 yii\grid\GridView::$dataProvider 返回的模型数组中的数据模型的从零开始的索引。 |
| return | string | 数据单元格值 |
|---|---|---|
{@inheritdoc]
| protected void getHeaderCellLabel() |
渲染数据单元格内容。
| protected string renderDataCellContent($model, $key, $index) | ||
| $model | mixed | 数据模型 |
| $key | mixed | 与数据模型相关的键 |
| $index | integer | 由 yii\grid\GridView::$dataProvider 返回的模型数组中的数据模型的从零开始的索引。 |
| return | string | 渲染结果 |
|---|---|---|
渲染过滤单元格内容。 默认实现只是渲染一个空格。 可以重写此方法以自定义过滤器单元的渲染(如果有)。
| protected string renderFilterCellContent() | ||
| return | string | 渲染结果 |
|---|---|---|
渲染过滤单元格。 默认实现只是渲染 $header。 可以重写此方法以自定义标题单元格的渲染。
| protected string renderHeaderCellContent() | ||
| return | string | 渲染结果 |
|---|---|---|