如何从CGridView传递网格行id以过滤在Dialog
中打开的另一个CGridView中的值
我的表单网格视图代码(见截图),
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'document-grid',
'dataProvider'=>$model->search(),
'columns'=>array(
array(
'class' => 'CButtonColumn',
'template' => '{edit}{DocumentDelete}',
'buttons' => array(
'DocumentDelete' => array(
'imageUrl'=>Yii::app()->request->baseUrl.'/images/delete.png',
'url'=>'Yii::app()->createUrl("baseContact/DocumentDelete", array("id"=>$data->crm_document_id))',
),
'edit' => array(
'imageUrl'=>Yii::app()->request->baseUrl.'/images/update.png',
'url'=>'Yii::app()->createUrl("baseContact/edit", array("id"=>$data->crm_document_id))',
),
),),
'crm_document_id',
'name',
'doc_type',
'delivery_method',
'content_subject',
'content_body',
'is_active',
),
)); ?>
查看弹出网格代码,
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'ManagedocumentAttach-grid',
'dataProvider'=>DocumentAttachmentModel::model()->search(),
//'filter'=>$model,
'columns'=>array(
array(
'name'=>'',
'value'=>'CHtml::checkBox("cid[]",null,array("value"=>$data->crm_document_attachment_id,"id"=>"cid_".$data->crm_document_attachment_id))',
'type'=>'raw',
'htmlOptions'=>array('width'=>5),
//'visible'=>false,
),
'crm_document_id',
'name',
'type',
),
)); ?>
如何将Form编辑的行ID传递给Popup GridView?
答案 0 :(得分:1)
显然,您使用AJAX来获取弹出窗口,因此我首先要确保编辑按钮的ID与您要打开的项目中的ID相同。然后你可以做以下JS(使用JQUERY)
$(".edit").on("click", function() {
var id = $(this).attr("id");
$.ajax({
type:"POST",
url: "controller/action/"+id;
success: function(data) {
//open dialog box and fill it with data
}
});
您还可以将id添加为数据,这样您就可以使用$_POST
来获取它,而不是将其作为函数定义的变量。如果你在php文档中编写JS,你可以使用$this->createUrl
,但这只是你喜欢的。
如果使用此功能无法解决问题,请告诉我们您现在是如何实施的。
答案 1 :(得分:0)
我不确定......但我有一种技术可以做到...... 如果我必须这样做......
我将通过htmlOptions提供课程,之后我将获得值,这应该是打开弹出窗口的ID ..
示例强>
<?php $this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider' => $dataProvider ,
'type' => TbHtml::GRID_TYPE_BORDERED,
'template' => "{items}",
'columns' => array(
array(
'name' => 'vendor_configuration_id',
'header' => $dataProvider->model->getAttributelabel('vendor_configuration_id'),
'htmlOptions' => array('class'=>'idClass'),
),
array(
'name' => 'menu_type',
'header' => $dataProvider->model->getAttributelabel('menu_type'),
'htmlOptions' => array(),
),
?>
现在jquery为它
$('.idClass').on("click",function(){
var neededId = $(this).html();
alert(neededId );
//基于此id或caal ajax打开弹出窗口以根据此
检索数据});