有时 grdiview 列里面的文字会很长。这是为什么我找方法来实现较小的列,但仍然提供信息。
看下面的例子,看看鼠标悬停到文本时会发生什么。
Create test acco...
正确:当鼠标悬停的时候完整的信息就会显示出来。
当你在后台需要在网格中显示大量信息时,这非常棒。如果你想要更漂亮的效果,你可以实现使用 Bootstrap 提示及类似的方式。这篇文章的目的是提供一个方法来做到这一点(这本身已经工作!)。
该方法包括:
1) a) 创建格式化方法:
class YFormatter extends CFormatter { /** * * Text formatter shortening long texts and displaying the full text * as the span title. * * To be used in GridViews for instance. * @param string $value * @return string Encoded and possibly html formatted string ('span' if the text is long). */ public function formatShortText($value) { $retval=CHtml::encode($value); if(strlen($value)>$this->shortTextLimit) { $retval=CHtml::tag('span',array('title'=>$retval),CHtml::encode(substr($value,0,$this->shortTextLimit-3).'...')); } return $retval; } }
1) b) 确保在项目配置中配置了刚刚创建的格式器:在 config.php 文件的format组件那制定格式器的类:
'components'=>array( 'format'=>array( 'class'=>'YFormatter', ), ),
2) 在 gridview 中制定shortText作为格式化程序(因为我们称我们的格式化程序方法为formatShortText)
'columns'=>array( array('name'=>'description', 'type'=>'shortText'), ),
完成了,你还可以很容易的添加其他类似的格式器(formatter)