我正在网页上创建一个图库。在我的网络中,我也有一些视图,我使用一些小部件,如CGridView或CListView。在这些视图中,当页面中有许多元素时,会自动显示分页栏。当然我使用Yii创建了theese视图,问题是我不知道如何在我的图库视图中创建这种分页。出于这个原因,我在互联网上搜索了一个分页代码,我找到了一些东西。现在我正在使用此代码
<div class="pagination">
<ul>
<?php
echo "<a href=\"?pag=".'1'."\" onclick=\"Pagina('1')\"><< Primero </a> ";
if($pag_act>1) echo "<a href=\"?pag=".$pag_ant."\" onclick=\"Página('$pag_ant')\"> < Anterior</a> ";
for ($l=$pag_act;$l<=$pag_ult;$l++){
echo "<a href=\"?pag=".$l."\" onclick=\"Página('$l')\"> $l</a> ";
}
if($pag_act<$pag_ult) echo " <a href=\"?pag=".$pag_sig."\" onclick=\"Pagina('$pag_sig')\">Siguiente > </a> ";
echo "<a href=\"?pag=". $pag_ult."\" onclick=\"Pagina('$pag_ult')\">Último >> </a>";
?>
</ul>
</div>
当然,我编辑了代码,因为我希望这个显示的分页栏与Yii在其他视图中创建的分页栏相似,就像我告诉你的那样。
最后,我的分页栏与Yii创建的类似,但它们的工作方式不同。例如,我的分页栏在URL中显示“myApp / site / gallery.html?pag = 1”,当我点击一个按钮时它不会改变他的颜色背景,最重要的是,当我点击按钮时页面刷新,你显示这个的开始,我的意思是,tittle,而不是分页栏。
我知道要改变背景颜色我必须编辑css,在我的情况下,在navi.css中我有:
/ * --------------------------------------------- -Pagination ------------------------------------- * /
.pagination{display:block; width:100%; text-align:center; clear:both;}
.pagination ul{margin:0; padding:0; list-style:none;}
.pagination li{display:inline;}
.pagination .next{margin:0;}
.pagination a{display:inline-block; padding:2px 5px 3px 5px; margin:0 2px 0 0; border:1px solid #DFDFDF;}
.pagination .current, .pagination .splitter{padding:6px; margin:0 2px 0 0;}
.wrapper .pagination a:hover, .pagination .current, .pagination .splitter{color:#9B9B9B!important; background-color:#F9F9F9;}
.pagination ul li.selected a{color:#666666!important; background-color: #F9F9F9;border:0;}
但我不知道如何改变我的分页栏的背景颜色。
我希望我的分页栏能够像Yii一样创作,或者知道如何创建另一个像Yii分页栏。
拜托,有人可以帮帮我吗? ¡谢谢!
修改
我使用gallery.php的这段代码来显示图像:
<div class="wrapper col2">
<div id="container" class="clear">
<!-- ####################################################################################################### -->
<div id="tabcontainer">
<ul id="tabnav">
<li><a href="#tabs-1">Wedding Photos</a></li>
<li><a href="#tabs-2">Artistic Photos</a></li>
<li><a href="#tabs-3">Children's Photos</a></li>
<li><a href="#tabs-4">Fashion Photos</a></li>
<li><a href="#tabs-5">Action Photos</a></li>
</ul>
<!-- ########### -->
<div id="tabs-1" class="gallery clear">
<ul>
<?php
while($imagen_a_empezar<$imagen_a_terminar){
if($imagen_a_empezar>=$total_imagenes) break;
if (in_array($imagen_a_empezar,$ultimos)){
?>
<li class="last"><a href="<?php echo Yii::app()->theme->baseUrl;?>/images/portfolioslider/<?php echo $archivos[$imagen_a_empezar]?>.jpg" rel="prettyPhoto[gallery1]" title=""><img src="<?php echo Yii::app()->theme->baseUrl; ?>/images/gallery/<?php echo $archivos[$imagen_a_empezar]?>.jpg" alt="" /></a></li>
<?php }else{ ?>
<li><a href="<?php echo Yii::app()->theme->baseUrl;?>/images/portfolioslider/<?php echo archivos[$imagen_a_empezar]?>.jpg" rel="prettyPhoto[gallery1]" title=""><img src="<?php echo Yii::app()->theme->baseUrl; ?>/images/gallery/<?php echo $archivos[$imagen_a_empezar]?>.jpg" alt="" /></a></li>
<?php };?>
<?php $imagen_a_empezar++;
};?>
</ul>
</div>
</div>
</div>
</div>
答案 0 :(得分:1)
我认为让yii为你做分页更好,只需使用标准来获取你的模型并给它一个CPagination的实例。
您还可以定义一个css类并将其分配给您的gridview或使用“htmlOptions”的任何内容.like:
$this->widget('bootstrap.widgets.TbGridView', array(
'id' => 'my-grid',
'dataProvider' => $model->search(),
'summaryText'=>'', // hide summary
'htmlOptions' => array(
'class' => 'someClass',
'style' => 'width: 600px;height: 300px;',
),
));
这是一个good example.
希望这会有所帮助。
更新:或者您可以:
首先在你的控制器中,
$criteria = new CDbCriteria;
...
$pages=new CPagination($count);
// results per page
$pages->pageSize=10;
$pages->applyLimit($criteria);
$models = Books::model()->findAll($criteria);
$this->render('index', array(
'models' => $models,
'pages' => $pages
));
然后在你看来,
<?php foreach($models as $model): ?>
$this->renderPartial('_gallery' , array('model' => $model));
<?php endforeach; ?>
// display pagination
<?php $this->widget('CLinkPager', array(
'pages' => $pages,
))?&gt;