此:
$gridDataProvider = new CArrayDataProvider(array(
array('id'=>1, 'firstName'=>'Mark', 'lastName'=>'Otto', 'language'=>'CSS'),
array('id'=>2, 'firstName'=>'Jacob', 'lastName'=>'Thornton', 'language'=>'JavaScript'),
array('id'=>3, 'firstName'=>'Stu', 'lastName'=>'Dent', 'language'=>'HTML'),
));
$this->widget('bootstrap.widgets.BootGridView', array(
'type'=>'striped bordered condensed',
'dataProvider'=>$gridDataProvider,
'template'=>"{items}",
'columns'=>array(
array('name'=>'id', 'header'=>'#'),
array('name'=>'firstName', 'header'=>'First name'),
array('name'=>'lastName', 'header'=>'Last name'),
array('name'=>'language', 'header'=>'Language'),
array(
'class'=>'bootstrap.widgets.BootButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
),
),
));
正在回归:
菜单,按钮(以及其他所有内容)工作正常。
答案 0 :(得分:1)
这很简单,因为该示例使用CArrayDataProvider来填充网格。 当您进入BootButton(生成此列的类)以查看运行它的内容时,您将看到它正在尝试从dataprovider获取primaryKey属性,但没有这样的属性,因为数据是数组类型。
如果您计划使用按钮,则必须为网格传递CActiveDataProvider。
所以试着这样使用:
$this->widget('bootstrap.widgets.BootGridView', array(
'type'=>'striped bordered condensed',
'dataProvider'=>$model->search(),
'template'=>"{items}{pager}",
'filter'=>$model,...
$ model是控制器传递给视图的CActiveRecord。
答案 1 :(得分:0)
我不知道你在这个类中得到的代码是什么 - bootstrap.widgets.BootButtonColumn 但不管它是什么,这都是造成这个问题的原因。 确保您已定义每个按钮的完整操作,以避免此问题。
我的意思是,对于按钮列中的每个按钮,将URL设置为 -
'$this->grid->controller->createUrl("action_name", array("param_name" => "param_value"))'
这应该可以解决问题。
答案 2 :(得分:0)
这是由Button Column缺少变量引起的 它应该是
array(
'class'=>'bootstrap.widgets.BootButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
'viewButtonUrl'=>null,
'updateButtonUrl'=>null,
'deleteButtonUrl'=>null,
),