我无法在cgrid视图中设置列日的值: 我可以看到下拉列表,但所有星期一设置都在同一天,而不管$ data->天所代表的那天的价值
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'type'=>'raw',
'name'=>'day',
'value'=> ' CHtml::dropDownList(\'someName\'.$row,\'$data->day\',array(
\'Mo\'=>\'Monday\',
\'Tu\'=>\'Tuesday\',
\'We\'=>\'Wednesday\',
\'Th\'=>\'Thursday\',
\'Fr\'=>\'Friday\',
\'Sa\'=>\'Saturday\',
\'Su\'=>\'Sunday\',))',
),
'ts_id'
)
));
答案 0 :(得分:3)
如果你可以接受MVC中的轻微中断,那么如果你在你的模型中放入一个小的getter方法,事情会变得更容易阅读:
public function getDayDropDown()
{
$days = array('Mo'=>'Monday', ...);
return CHtml::dropDownList('someName', $this->day, $days);
}
现在,在gridview中,您可以将其用作
之类的列array(
'name' => 'Day',
'type' => 'raw',
'value' => '$data->dayDropDown',
),
答案 1 :(得分:1)
只是一个小问题解决了整个剧集。 我在原帖中把引号放在$ data->天左右。这是不需要的。
array( 'type'=>'raw',
'name'=>'day',
'value'=> ' CHtml::dropDownList(\'someName\'.$row,$data->day,
array(\'Mo\'=>\'Monday\',
\'Tu\'=>\'Tuesday\',
\'We\'=>\'Wednesday\',
\'Th\'=>\'Thursday\',
\'Fr\'=>\'Friday\',
\'Sa\'=>\'Saturday\',
\'Su\'=>\'Sunday\',)
)',
),
答案 2 :(得分:0)
这是下拉值和更新onchange的示例:
$this->widget('bootstrap.widgets.TbGridView', array(
'id'=>'session-grid',
'type'=>'striped bordered condensed',
'dataProvider'=>$PSDataProvider,
'filter'=>$PSModel,
'emptyText'=>'No hay sesiones abiertas.',
'columns'=>array(
array('name'=>'username', 'header'=>'Nombre de Usuario', 'filter'=>CHtml::activeTextField($PSModel, 'username',
array('placeholder'=>'Buscar por usuario...'))),
array('name'=>'product', 'header'=>'Producto', 'filter'=>CHtml::activeTextField($PSModel, 'product',
array('placeholder'=>'Buscar por producto...'))),
array('name'=>'expire', 'value'=>'date("d-m-y H:i:s", $data->expire)','header'=>'Hora de Expiracion', 'filter'=>CHtml::activeTextField($PSModel, 'expire',
array('placeholder'=>'Buscar por expiracion...'))),
array(
'header'=>CHtml::dropDownList('pageSize',$pageSize,array(5=>5,10=>10,20=>20,50=>50),array(
'onchange'=>"$.fn.yiiGridView.update('session-grid',{ data:{pageSize: $(this).val() }})",
'class'=>'span1 custom-tb-dropdown-inline',
)),
'class'=>'bootstrap.widgets.TbButtonColumn',
'htmlOptions'=>array('style'=>'width: 50px'),
'template'=>'{delete}',
'buttons'=>array(
'delete' => array(
'label'=>'Terminar sesión',
),
),
'deleteConfirmation'=>'Está seguro que desea terminar la sesión seleccionada?',
'deleteButtonUrl'=>'$this->grid->owner->createUrl("productSession/delete", $data->primaryKey)'
),
),
));