我正在尝试放置一个按钮,该按钮将与我在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'
));
有什么建议吗?
答案 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将正确绑定。