php - CGridView 样式化特定列,在 <td> 元素中插入 <div>

标签 php css yii zii-widgets

我正在尝试将自定义样式应用于 CGridView 生成的特定列。我需要在元素内部插入,但我不知道该怎么做。

这是 View 文件:

<div id="shortcodes" class="page">
    <div class="container">
        <!-- Title Page -->
        <div class="row">
            <div class="span12">
                <div class="title-page">
                    <h2 class="title">Available Products</h2>

                </div>
            </div>
        </div>
        <!-- End Title Page -->
        <!-- Start Product Section -->
        <div class="row">
            <?php
            $this->widget('bootstrap.widgets.TbGridView', array(
                'id' => 'products-grid',
                'dataProvider' => $dataProvider,
                'ajaxUpdate' => TRUE,
                'pager' => array(
                    'header' => '',
                    'cssFile' => false,
                    'maxButtonCount' => 25,
                    'selectedPageCssClass' => 'active',
                    'hiddenPageCssClass' => 'disabled',
                    'firstPageCssClass' => 'previous',
                    'lastPageCssClass' => 'next',
                    'firstPageLabel' => '<<',
                    'lastPageLabel' => '>>',
                    'prevPageLabel' => '<',
                    'nextPageLabel' => '>',
                ),
                'columns' => array(
                    'id',
                    'name',
                    'category',
                    'brand',
                    'weight_unit',
                    'price_unit',
                    'flavors',
                    array(
                        'name' => 'providers',
                        'htmlOptions' => array('class' => 'label label-info'),
                    ),
                ),
            ));
            ?>
        </div>
        <!-- End Product Section -->
    </div>
</div>

所以我想为名为“providers”的列设置样式。使用 htmlOptions 确实将类添加到 td 列,但该列的对齐方式不合适。这就是为什么我想把它包装在 <div> 中, 以应用正确的对齐方式和样式。

现在看起来是这样的:

<tr class="even">
    <td>414</td>
    <td>Owl Book</td>
    <td>Night Owl Trance</td>
    <td>Binaural Beats</td>
    <td> 400 Grams</td>
    <td>$569.66</td>
    <td>Ether</td>
    <td class="label label-info">Shrooms.com</td>
</tr>

我想做的是:

<tr class="even">
    <td>414</td>
    <td>Owl Book</td>
    <td>Night Owl Trance</td>
    <td>Binaural Beats</td>
    <td> 400 Grams</td>
    <td>$569.66</td>
    <td>Ether</td>
    <td><div class="label label-info">Shrooms.com</div></td>
</tr>

那么,我该怎么做呢?有选择吗?据我所知,htmlOptions 只会向元素添加属性。

最佳答案

未经测试,但我认为您可以使用类似这样的东西。

'flavors',
    array(
        'name' => 'providers',
        'value' => "<div class=label label-info>$data->providers</div>"
        ),

关于php - CGridView 样式化特定列,在 <td> 元素中插入 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323319/

相关文章:

php - 如何使用mysql查询在php中显示毫秒

PHP/MySql 用数组搜索数组

php - SQL使用子查询删除大量条目

html - 使用嵌套 flexbox div 的日历布局 - 容器不堆叠

php - 根据对方法的外部或内部调用选择性地公开函数

php - 如何将类属性设置为 Symfony2 表单输入

html - CSS Z 索引问题

python - 按日期升序和降序排列的列

php - Yii CUserIdentity 与用户模型

php - 静态页面的 htaccess 条件 https