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 | 渲染结果 |
---|