2013-01-10 2 views
1

Mon problème: les deux options de pagination sont sur des lignes séparées.Yii insérer html dans CListView personnalisé

J'ai:

<div class="search_result searchconright"> 
    <?php 
    $this->widget('zii.widgets.CListView', array(
     'id' => 'listViewSearch', 
     'dataProvider' => $model->search(), 
     'itemView' => '_index_post', 
     'enablePagination' => true, 
     'pager' => array(
         'cssFile' => Yii::app()->baseUrl . '/css/clistview.css', 
         'header' => false, 
         'firstPageLabel' => 'First', 
         'prevPageLabel' => 'Previous', 
         'nextPageLabel' => 'Next', 
         'lastPageLabel' => 'Last', 
        ), 
     'summaryText' => '', 
     'sortableAttributes' => array(
     ), 
    )); 
    ?> 
</div> 
<div class="pagetxt"> 
    <span>View</span> 
    <a class="page_search_limit">All</a> 
    &nbsp;&nbsp; 
    <a class="page_search_limit page_search_limit_active">3</a> 
    &nbsp; 
    <a class="page_search_limit page_search_limit_active">5</a> 
    &nbsp; 
    <a class="page_search_limit page_search_limit_active">24</a> 
    &nbsp; 
    <a class="page_search_limit">48</a> 
</div> 

et je voudrais insérer l'ensemble html à partir pagetxt de classe dans le widget, parce que le seccond pagination, est sous la pagination widgets; Je les aime être sur la même ligne

également, d'autres suggestions sont les bienvenues

la Pagination: enter image description here

Répondre

1

Vous avez 2 options, d'abord la façon dont vous le faites, vous pouvez utiliser la propriété template de CListView, pour ajouter le HTML où vous voulez dans le widget.

Mais il semble que ce que vous essayez de faire, est de permettre à l'utilisateur de spécifier le nombre d'éléments qu'ils veulent voir par page, donc je vous recommande d'utiliser quelque chose comme le PageSize extension

+0

oui, ce est ce que j'ai utilisé; c'est ce qui a marché –

1

Je pense que vous pouvez le faire avec CSS:

.search_result, .pagetxt { 
    display: inline-block; 
} 

Pour changer la pagination CListView HTML, vous devez créer un nouveau CLinkPager et les paramètres pass. Donc, je pense que CSS est beaucoup plus simple :)

1

Ceci est purement un problème de mise en page: vous devez avoir le pager rendre en ligne avec votre code HTML personnalisé. Une façon de le faire serait de donner display: line-block à ces deux DIV avec CSS, mais bien sûr vous pouvez également utiliser d'autres techniques comme le flottant.

Vous pouvez facilement cibler le pager stock en définissant la propriété pagerCssClass dans votre vue de liste; la valeur par défaut est tout simplement "pager", vous pouvez donc faire

$this->widget('zii.widgets.CListView', array(
     'id' => 'listViewSearch', 
     'pagerCssClass' => 'pager pager-inline' 
     // ... 
); 

puis par exemple

.pager.pager-inline, .pagetxt { 
    display: inline-block; 
} 
Questions connexes