yii CGridView click事件
我在用CGridViewwidgets显示结果的时候我自定义了一个button,我想给button绑定一个js的function,也就是弹出一个窗口化的也页面。(用的cl...
我在用CGridView widgets显示结果的时候 我自定义了一个button,我想给button绑定一个js的function,也就是弹出一个窗口化的也页面。(用的click)
这些都能成,可是我想在调用js的时候查询结果的参数给弹出的页面,然后就各种出错了,下面上代码:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'yin-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
//'id',
array(
'name'=>'wav_number',
'header'=>'音的编号',
),
array(
'header'=>'查看音频',
'class'=>'CButtonColumn',
'headerHtmlOptions'=>array('width'=>'50'),
'htmlOptions' => array('align'=>'center'),
'template'=>'{play}',
'buttons'=>array(
'play'=>array(
'label'=>'播放',
'imageUrl'=>Yii::app()->request->baseUrl.'/images/play.jpg',
'click'=>'function(){noBorderWin("'.Yii::app()->urlManager->createUrl('/yin/play').'","300","200","#000000","#CCCCCC","音频播放","#000000","no");}',
这是能行的,然后我就传递参数,改成下面这样:
'click'=>'function(){noBorderWin("'.Yii::app()->urlManager->createUrl('/yin/play',array('wavpath'=>$data->wav_path)).'","300","200","#000000","#CCCCCC","音频播放","#000000","no");}',
$data应该是传递过来的查询结果的那一行的数据,可是提示我data未定义。。。然后就各种不知道怎么办了,各种求指导! 展开
这些都能成,可是我想在调用js的时候查询结果的参数给弹出的页面,然后就各种出错了,下面上代码:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'yin-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
//'id',
array(
'name'=>'wav_number',
'header'=>'音的编号',
),
array(
'header'=>'查看音频',
'class'=>'CButtonColumn',
'headerHtmlOptions'=>array('width'=>'50'),
'htmlOptions' => array('align'=>'center'),
'template'=>'{play}',
'buttons'=>array(
'play'=>array(
'label'=>'播放',
'imageUrl'=>Yii::app()->request->baseUrl.'/images/play.jpg',
'click'=>'function(){noBorderWin("'.Yii::app()->urlManager->createUrl('/yin/play').'","300","200","#000000","#CCCCCC","音频播放","#000000","no");}',
这是能行的,然后我就传递参数,改成下面这样:
'click'=>'function(){noBorderWin("'.Yii::app()->urlManager->createUrl('/yin/play',array('wavpath'=>$data->wav_path)).'","300","200","#000000","#CCCCCC","音频播放","#000000","no");}',
$data应该是传递过来的查询结果的那一行的数据,可是提示我data未定义。。。然后就各种不知道怎么办了,各种求指导! 展开
1个回答
展开全部
array(
'header' => '查看音频',
//....
'buttons' => array(
'play' => array(
'label' => '播放',
'imageUrl' => Yii::app()->request->baseUrl . '/images/play.jpg',
'url' => 'Yii::app()->createUrl("/yin/play", array("wavpath"=>$data->wav_path))',
'click' => 'noBorderWin(this.src,300,200,"#000000","#CCCCCC","音频播放","#000000","no");return false;',
),
)
);
gridview对$data引用是实时解析的(用eval()来执行),所以要以字符串形式存储(因此要求使用单引号包裹字符串),直接写肯定会报变量未定义。
希望对你有帮助
'header' => '查看音频',
//....
'buttons' => array(
'play' => array(
'label' => '播放',
'imageUrl' => Yii::app()->request->baseUrl . '/images/play.jpg',
'url' => 'Yii::app()->createUrl("/yin/play", array("wavpath"=>$data->wav_path))',
'click' => 'noBorderWin(this.src,300,200,"#000000","#CCCCCC","音频播放","#000000","no");return false;',
),
)
);
gridview对$data引用是实时解析的(用eval()来执行),所以要以字符串形式存储(因此要求使用单引号包裹字符串),直接写肯定会报变量未定义。
希望对你有帮助
参考资料: http://www.yiiframework.com/doc/api/1.1/CGridView
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询