如何通过扩展CFormatter来截断TbEditableColumn中的文本?

时间:2013-12-13 17:11:29

标签: gridview yii truncate yii-booster

我使用yii和Yii Booster。

我想截断 TbEditableColumn 中显示的文字。 我按照here所述扩展了 CFormatter :。

为了截断我在列定义属性“类型”中设置的文本到数组('type'=>'shortText',length => 20)

//gridview

'columns'=>array(
  array(
    'type' => array(
        'type' => 'shortText',
        'length' => 10
    ),
),

它在不可编辑的列中正常工作。 设置时它不起作用:

'class' => 'bootstrap.widgets.TbEditableColumn'

知道如何使其与TbEdiableColumn一起使用吗?

1 个答案:

答案 0 :(得分:1)

现在这是一个大脑痒痒的人。虽然TbEditableColumn最终会扩展CDataColumn,但如果它能够将TbEditableField窗口小部件应用于数据单元格,它根本不会尊重网格视图的格式化程序。 TbEditableField具有text属性,用于控制数据单元格中显示的文本(即,在您单击之前)。不幸的是,它似乎是静态的。它永远不会以任何形式进行评估,因此您无法将表达式或匿名函数传递给它。

结论:除非你教导TbEditableField如何通过扩展格式化来提取格式化,否则无法完成。 <{1}}也必须扩展,因此它将传递格式化程序实例。