在yii中将jquery按钮放在clistview小部件中

时间:2011-10-06 14:40:22

标签: jquery-ui yii

我正在尝试放置一个按钮,该按钮将与我在CListView小部件的“itemView”字段中指定的视图文件中的一些数据一起显示,但不是每个列表项的样式按钮,我只是得到它或第一个列表项。我在_view文件中的代码是:

<div id="listView">
<div class="thedata">
  ...some data
</div>

<div id="buttons">
<?php
$this->widget('zii.widgets.jui.CJuiButton', array(
'buttonType'=>'button',
'name'=>'btnJobs',
'caption'=>'Manage Jobs',
'options'=>array('icons'=>'js:{primary:"ui-icon-wrench"}'),
'onclick'=>'js:function(){alert("Manage Jobs clicked."); this.blur(); return false;}',
));
?>
</div>
</div>

并且CListView小部件的代码只是最低限度:

$this->widget('zii.widgets.CListView', array(
    'dataProvider' => $dataProvider,
    'itemView' => '_view'
));

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

尝试将唯一ID传递给CJuiButton,如下所示:

<?php 
$this->widget('zii.widgets.jui.CJuiButton', array(
  'id'=>'button'.$data->id, // add a unique ID here (could use $index instead of $data->id)
  'buttonType'=>'button',
  'name'=>'btnJobs',
  'caption'=>'Manage Jobs',
  'options'=>array('icons'=>'js:{primary:"ui-icon-wrench"}'),
  'onclick'=>'js:function(){alert("Manage Jobs clicked."); this.blur(); return false;}',
 ));
?>

问题在于,由于所有按钮都具有相同的“名称”(因此“id”),因此jQuery仅绑定到第一个按钮。确保每个按钮都有一个唯一的ID应该解决这个问题,因此jQuery将正确绑定。