繁体   English   中英

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

[英]Yii CGridView filter/search function not working inside a CJuiDialog

我尝试了http://www.yiiframework.com/forum/index.php/topic/16797-data-picker/中的代码来实现数据选择器。 除了在CJuiDialog中呈现的CGridView的搜索功能之外,其他所有东西都工作正常。 此外,控制台上没有显示JavaScript错误。 所有代码都在_form.php中(最初由Yii CRUD生成器生成)。 顺便说一句,我已经尝试过在Yii CGridView中渲染的解决方案, 不会CJuiDialog内部渲染CJuiDialog ,也不会解决我的问题。

CGridView不过滤

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

最终弄清楚我需要在相关控制器中使用以下代码。 用搜索方案实例化Company类之后

$model_co = new Company('search');

需要添加这些,

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

之后,过滤将按预期进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM