我正在尝试将一个按钮与我在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>
Run Code Online (Sandbox Code Playgroud)
并且CListView小部件的代码只是最低限度:
$this->widget('zii.widgets.CListView', array(
'dataProvider' => $dataProvider,
'itemView' => '_view'
));
Run Code Online (Sandbox Code Playgroud)
有什么建议?
尝试将唯一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;}',
));
?>
Run Code Online (Sandbox Code Playgroud)
问题在于,由于所有按钮都具有相同的"名称"(因此"id"),因此jQuery仅绑定到第一个按钮.确保每个按钮都有一个唯一的ID应该解决这个问题,所以jQuery将正确绑定.