yii2 gridview tr中的data-key值设置之后不生效, [ 2.0 版本 ]
yii2 gridview tr中的data-key值设置之后不生效,如果我设置'data-value'的时候值就能出来,但是使用'data-key'的时候就变成了如图所示这个样子
今之人兮 补充于 2017-04-17 16:56
最佳答案
-
johnny1991 发布于 2017-04-17 17:24 举报
参照yii\grid\GridView的这两个方法
public function renderTableBody() { $models = array_values($this->dataProvider->getModels()); $keys = $this->dataProvider->getKeys(); $rows = []; foreach ($models as $index => $model) { $key = $keys[$index]; if ($this->beforeRow !== null) { $row = call_user_func($this->beforeRow, $model, $key, $index, $this); if (!empty($row)) { $rows[] = $row; } } $rows[] = $this->renderTableRow($model, $key, $index); if ($this->afterRow !== null) { $row = call_user_func($this->afterRow, $model, $key, $index, $this); if (!empty($row)) { $rows[] = $row; } } } if (empty($rows)) { $colspan = count($this->columns); return "<tbody>\n<tr><td colspan=\"$colspan\">" . $this->renderEmpty() . "</td></tr>\n</tbody>"; } else { return "<tbody>\n" . implode("\n", $rows) . "\n</tbody>"; } } public function renderTableRow($model, $key, $index) { $cells = []; /* @var $column Column */ foreach ($this->columns as $column) { $cells[] = $column->renderDataCell($model, $key, $index); } if ($this->rowOptions instanceof Closure) { $options = call_user_func($this->rowOptions, $model, $key, $index, $this); } else { $options = $this->rowOptions; } $options['data-key'] = is_array($key) ? json_encode($key) : (string) $key; return Html::tag('tr', implode('', $cells), $options); }
共 9 条回复johnny1991 回复于 2017-04-17 17:28 回复@Edwin ‘data-key’从源码看起来,是单独设置的,
$options['data-key'] = is_array($key) ? json_encode($key) : (string) $key;johnny1991 回复于 2017-04-17 17:31 回复@Edwin 具体通过这个来设置的
$keys = $this->dataProvider->getKeys();johnny1991 回复于 2017-04-17 17:45 回复@Edwin 看源码啊
xddsiyecao 回复于 2017-06-19 15:29 回复@Edwin 可以这样
$dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => [ 'defaultOrder' => [ 'id' => SORT_ASC ], ], 'key' => 'order_id' ]);
yunfeng0614 回复于 2018-05-03 21:58 回复正解!!!
yunfeng0614 觉得很赞
其他 5 个回答
-
dashixiong 回答于 2017-04-17 16:30 举报
你按照上图的设置配置一下试试。
共 4 条回复dashixiong 回复于 2017-04-17 16:48 回复@Edwin 我的怎么是可以的?
dashixiong 回复于 2017-04-17 16:53 回复@Edwin 你的姿势肯定不对
@dashixiong ..姿势很对
-
dashixiong 回答于 2017-04-17 17:03 举报
给我瞅瞅你这块的代码是怎么设置的 gridview
共 3 条回复dashixiong 回复于 2017-04-17 17:28 回复@Edwin 那个'summary' => false,你没设置啊
@dashixiong 设置了,没用啊
今之人兮 郑州
注册时间:2016-05-04
最后登录:2021-09-29
在线时长:49小时14分
最后登录:2021-09-29
在线时长:49小时14分
- 粉丝8
- 金钱16365
- 威望10
- 积分16955