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

Rah*_*kur 3 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>
Run Code Online (Sandbox Code Playgroud)

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

$this->widget('zii.widgets.CListView', array(
    'dataProvider' => $dataProvider,
    'itemView' => '_view'
));
Run Code Online (Sandbox Code Playgroud)

有什么建议?

tha*_*smt 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;}',
 ));
?>
Run Code Online (Sandbox Code Playgroud)

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