我尝试了http://www.yiiframework.com/forum/index.php/topic/16797-data-picker/的代码 实现数据选择器。除了在CJuiDialog中渲染的CGridView的搜索功能外,一切正常。此外,控制台上没有显示JavaScript错误。所有代码都在_form.php中(最初由Yii CRUD生成器生成)。顺便说一下,我已经在Yii CGridView rendered inside CJuiDialog won't be filtered or ordered中尝试了解决方案,但仍未解决我的问题。
<div class="row">
<?php echo $form->labelEx($model,'company_id'); ?>
<?php echo $form->hiddenField($model,'company_id'); ?>
<input type="text" name="company_name" id="company_name" readonly value="" />
<?php echo CHtml::Button('x', array('name' => 'del_co', 'id' => 'del_co', 'onclick' => '$("#company_name").val("");$("#Customer_company_id").val("")')) ?>
<?php echo CHtml::Button('Get Company',
array('onclick'=>'$("#co_dialog").dialog("open"); return false;',
)) ?>
<?php echo $form->error($model,'company_id'); ?>
</div>
在表格div的末尾,我在CJuiDialog中添加了CGridView的部分:
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog',
array(
'id'=>'co_dialog',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'List Company',
'width'=>'auto',
'autoOpen'=>false,
),
));
$this->widget('zii.widgets.grid.CGridView',
array(
'id'=>'co-select-grid',
'dataProvider'=>$model_co->search(),
'filter'=>$model_co,
'columns'=>array(
'company_name',
array(
'header'=>'',
'type'=>'raw',
'value'=>'CHtml::Button("+", array(
"name" => "send_co",
"id" => "send_co",
"onClick" => "$(\"#co_dialog\").dialog(\"close\"); $(\"#company_name\").val(\"$data->company_name\"); $(\"#Customer_company_id\").val(\"$data->id\");"
))',
),
),
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
答案 0 :(得分:1)
最后发现我需要在相关控制器中使用以下代码。 使用搜索方案
实例化Company类之后$model_co = new Company('search');
需要添加这些,
$model_co->unsetAttributes();
if(isset($_GET['Company']))
$model_co->attributes=$_GET['Company'];
之后过滤将按预期工作。