Yii CGridView过滤器/搜索功能在CJuiDialog中不起作用

时间:2014-06-27 00:10:13

标签: javascript php yii

我尝试了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中尝试了解决方案,但仍未解决我的问题。

CGridView not filtering

<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');
?>

1 个答案:

答案 0 :(得分:1)

最后发现我需要在相关控制器中使用以下代码。 使用搜索方案

实例化Company类之后
$model_co = new Company('search');

需要添加这些,

$model_co->unsetAttributes();
if(isset($_GET['Company']))
   $model_co->attributes=$_GET['Company'];

之后过滤将按预期工作。

相关问题