【问题标题】:Bootstrap Widgets tblistview: How not to show total itemcount?Bootstrap Widgets tblistview:如何不显示项目总数?
【发布时间】:2013-04-13 16:35:40
【问题描述】:

我正在尝试修改使用 Yii boostrap 和 CactiveDataprovider 构建的表,该表工作正常,但它还会自动显示找到的所有项目的计数,如何禁用显示此计数

这是当前的视图逻辑

$this->widget('bootstrap.widgets.TbListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_view',
    'viewData'=>array('page'=>$page),
    'itemsTagName'=>'table',
    'itemsCssClass'=>'items table table-striped table-condensed',
    'emptyText'=>'<i> Sorry, there are no active items to display</i>',
                  )); 

【问题讨论】:

  • 你是不是在引用这样的东西:screencast.com/t/QkYjqIDX ?
  • 是的,我指的是同一个,在某些用例中数据不相关

标签: php activerecord twitter-bootstrap yii yii-extensions


【解决方案1】:

你需要添加这一行:

'template' => "{sorter}\n{items}\n{pager}",

TbListView 扩展自 CListView,它使用模板变量来控制布局。见:http://www.yiiframework.com/doc/api/1.1/CListView#template-detail

默认模板是"{summary}\n{sorter}\n{items}\n{pager}",其中 {summary} 是显示计数的内容。所以如果你删除它,计数将不会显示

【讨论】:

  • 谢谢它的工作:) .. 使用你的方法,我也能够将摘要内容移动到页脚。
【解决方案2】:

您可能会参考:example

如果是,请根据需要设置模板属性。

你需要删除summary这个文字。

pages代表分页

items 代表...项目列表

<?php
$this->widget('zii.widgets.CListView', array(
    'dataProvider' => $dataProvider,
    'template' => "{summary}\n{pager}\n{items}\n{summary}\n{pager}",
    'itemView' => '_index',
    'pager' => array(
        'maxButtonCount' => 10,
    ),
        )
);
?>

【讨论】:

    【解决方案3】:

    这很容易。 把适当的summaryText设为false。

    <?php $this->widget('bootstrap.widgets.TbListView',array(
        'dataProvider'=>$dataProvider,
        'itemView'=>'_view_mercado',
        'summaryText'=>false //make it for hide summary text
    )); ?> 
    

    【讨论】:

      【解决方案4】:

      使用 CSS 怎么样?很简单

      【讨论】:

      • 你会怎么做?你的意思是隐藏特定的类?
      • 我的做法是 .list-view .summary { display:none; } 使用容器来确保它只隐藏在你想要的地方,而不是在所有应用中
      • 我想这应该对我有用,但不是有点乱吗?在 php/framework 方面进行更改而不是通过 CSS 隐藏它不是更好吗?我的意思是,如果根本不使用数据,为什么还要将数据传递给视图?
      • 我知道,不幸的是,文档对您可以做的所有事情都不是很清楚,而且许多 hack 是必要的,另外,只是多咬几口,不会影响您的表现。
      • 是的,确实文档不是很全面,扩展更糟糕:(
      【解决方案5】:

      我从离线来源获得了这个替代答案,为了完整起见,在此处发布。
      Ionut-flavius-Pogacian 和frostyterrier 方法都有效,并且是更好的解决方案,因为定义模板可以更好地控制小部件的行为,而不仅仅是在下面的答案中定义 summaryText

      Tblistview 没有记录在 Yii-bootstrap 文档中,但是扫描源代码似乎它是 Yii 中 CListview 类的包装器。

      CListview 扩展了具有 summaryText 属性的 CBaseListView。将空白数据传递给它,删除默认活动的计数。

      http://www.yiiframework.com/doc/api/1.1/CBaseListView#template-detail

      SummaryText 有以下可用变量

      {start}: the starting row number (1-based) currently being displayed 
      {end}: the ending row number (1-based) currently being displayed 
      {count}: the total number of rows
      {page}: the page number (1-based) current being displayed, available since version 1.1.3
      {pages}: the total number of pages, available since version 1.1.3 
      
      {start} {end} and {count} are visible by default
      

      代码可以修改为

      $this->widget('bootstrap.widgets.TbListView', array(
          'dataProvider'=>$dataProvider,
          'itemView'=>'_view',
          'viewData'=>array('page'=>$page),
          'itemsTagName'=>'table',
          'itemsCssClass'=>'items table table-striped table-condensed',
          'emptyText'=>'<i> Sorry, there are no active items to display</i>',
          'summaryText'=>''
                        )); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 2014-10-23
        • 1970-01-01
        • 2018-11-29
        • 2015-11-29
        • 1970-01-01
        相关资源
        最近更新 更多