Yii CCheckBoxColumn如何在CGridView上获取checked列的id

时间:2014-06-11 21:44:21

标签: php yii

CGridViewCCheckBoxColum

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'documento-financeiro-grid',
    'dataProvider' => $provider,
    'filter' => null,
    'columns' => array(
        array(
            'id' => 'autoId',
            'class' =>'CCheckBoxColumn',
            'selectableRows' => '50',
            'checked'=>'alert('
        ),
        array(
            'name' => 'id',
            'htmlOptions' => array('style' => 'width: 50px;'),
            'headerHtmlOptions' => array('style' => 'width: 50px;'),
        ),
        array(
            'name' => 'numero',
            'htmlOptions' => array('style' => 'width: 60px;'),
            'headerHtmlOptions' => array('style' => 'width: 60px;'),
        ),
 ),
)); 

我想在检查一行时显示一个对话框窗口,但是我需要知道检查了哪个行的ID,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我会尝试编写代码的样子。

你必须编写一些javascript来监听change事件的复选框(当点击复选框时会触发此事件)。

我已经使用了一个jquery选择器来根据它们所在的列选择复选框(这是因为你的网格可能有其他带复选框的列 - 我们不想触摸它们)。

在我的示例代码中,我假设您的复选框具有以documento_financeiro-grid_c0开头的ID(这是Yii默认提供的ID)。如果不是这样的话,请更改。

如果您的复选框已选中,则行ID存储在变量item_id中,变量item_checked包含true,如果未选中,则false包含$('#documento-financeiro-grid input[id^=documento-financeiro-grid_c0]').change(function() { var item_id = $(this).val(); var item_checked = $(this).prop('checked'); if (item_id === "1") { console.log('top checkbox was clicked on'); } else { console.log('ID was'+item_id); } });

{{1}}

我希望这会有所帮助。