2

我有一个网格,在这个网格中我有过滤器。网格代码是:

$this->widget('booster.widgets.TbGridView', array(
        'id' => 'sam',
        'type' => 'striped bordered condensed',
        'dataProvider' => $dataProvider,
        'responsiveTable' => true,
        'enableHistory' => true,
        'filter' => $asset,
        'columns' => array(
            array(
                'name' => 'id',
                'header' => '#',
                'filter' => false,
                'type' => 'text',
            ),
            array(
                'name' => 'user',
                'header' => 'Registered By',
                'type' => 'text',
                'value' => '$data["assignedBy"]',
            ),
            array(
                'name' => 'createdAt',
                'header' => 'Created At',
                'type' => 'datetime',
            ),
            array(
                'name' => 'serial',
                'header' => 'Serial',
            ),
            array(
                'name' => 'brand',
                'header' => 'Brand',
            ),
            array(
                'name' => 'model',
                'header' => 'Model',
            ),
            array(
                'name' => 'assetType',
                'type' => 'text',
                'filter' => \wsi\it\model\AssetType::getRepository()->getTypeTree(),
                'value' => '$data["assetTypeName"]',
                'header' => 'Type',
            ),
            array(
                'name' => 'assigned',
                'value' => '(isset($data["assignedTo"]))? $data["assignedTo"]:null',
                'header' => 'Assigned To',
            ),
            array(
                'name' => 'location',
                'filter' => \wsi\hr\Facade::getInstance()->getLocations(),
                'value' => '$data["locationName"]',
                'header' => 'Location',
            ),
            array(
                'name' => 'status',
                'header' => 'Status',
                'filter' => \wsi\it\model\Asset::$statusOptionList,
                'value' => '\wsi\it\model\Asset::$statusOptionList[$data["status"]]',
            ),
            array(
                'class' => 'booster.widgets.TbButtonColumn',
                'template' => '{view} {update} {delete}',
                'header' => '',
                'buttons' => array(
                    'update' => array(
                        'url' => '\Yii::app()->controller->createUrl("asset/create", array("id"=>$data["id"]))',
                    ),
                    'view' => array(
                        'url' => '\Yii::app()->controller->createUrl("asset/view", array("id"=>$data["id"]))',
                    ),
                    'delete' => array(
                        'url' => '\Yii::app()->controller->createUrl("asset/delete", array("id"=>$data["id"]))',
                    ),
                ),
            ),
        )
    )
);

在浏览器中呈现 Grid 时,您可以看到过滤器列表框包含未完全解析的 html!

我说的是这些 $nbsp;  在过滤器列表框中

我之前在使用 Yii-Booster 时遇到过这个问题,我使用传递给该小部件的选项('htmlOptions' => 'encode' => false)解决了它,它防止 被视为字符串,因此浏览器会将其解析为空间。您可以在下面看到的代码不适用于网格过滤器!

$form->dropDownListGroup($formModel, 'segmentList', array(
        'wrapperHtmlOptions' => array(
            'class' => 'col-md-6'
        ),
        'widgetOptions' => array(
            'data' => $segmentTreeArray,
            'htmlOptions' => array(
           >>>  'encode' => false, <<<                    
            )
        ),
        'hint' => "Press CTRL to add another item, otherwise others will be deselected",
    ));

我确信我也必须通过相同"encode" => false的过滤器列表,我只是找不到我应该通过它的键(htmlOptions 不起作用)。

4

0 回答 0