codeigniter分页定制

时间:2010-01-12 17:58:19

标签: html model-view-controller codeigniter

我正在浏览CI文档,特别是http://codeigniter.com/user_guide/libraries/pagination.html

我想到的第一件事是“CodeIgniter的Pagination类非常易于使用,它可以100%自定义,无论是动态还是通过存储的首选项。”但总有一些东西。

我的分页现在跟Previous 1 2 3 4 ... n Next一样,现在我可以在我的控制器中创建打开html标签和关闭html标签。

例如:

上一页

$config['prev_tag_open'] = '<div class="previous">';

The opening tag for the "previous" link.
$config['prev_tag_close'] = '</div>';

下一步

$config['next_tag_open'] = '<div>';

The opening tag for the "next" link.
$config['next_tag_close'] = '</div>';

最后的第一个等等。现在在我的设计中我做了上一个浮动下一个浮动向右,我有一个<div class="middle_pager">,它将所有页码一起保存在中间。

从我在文档中看到的我没有在CI中选择将所有页码放在html标签之间,我只能选择将每个页码放在一些标签中,也许有办法,但我错过了一个点。有人可以帮忙吗?

谢谢

2 个答案:

答案 0 :(得分:2)

诀窍是,你必须开箱即用。

您应该在“prev_tag_close”

的末尾添加一个开头标记
$config['prev_tag_open'] = '<div class="previous">';

The opening tag for the "previous" link.
$config['prev_tag_close'] = '</div>**<opening tag>**';

和“next_tag_open”的结束标记,如

$config['next_tag_open'] = '**</opening tag>**<div>';

The opening tag for the "next" link.
$config['next_tag_close'] = '</div>';

应该这样做。

答案 1 :(得分:1)

这几乎无法解决问题,您将如何在第一页和最后一页处理这种情况? next_tag_open / close不会出现在分页的最后一页上,并且prev_tag_open / close不会出现在分页的第一页上。

这显然会导致这些页面的两个块元素中断

好的,所以我今天早些时候遇到了同样的问题而且它确实在我的脑海里。我想出的唯一解决方案(完美地工作)是这样的;

在输出周围创建一个div -

<div class="pagination2">
    <?php echo $link; ?>
</div>

然后使用类提供的分页标签使用这些标签来包围数字标签(num_tag_open / close)。

$config['full_tag_open'] = '<div class="pagination">'; $config['full_tag_close'] = '</div>'; $config['num_tag_open'] = '<p>; $config['num_tag_close'] = '</p>';

现在跳转到css并相对定位外部块元素pagination2,然后去绝对定位内部块类的分页,居中它然后你可以使用负值来推送绝对定位的nextlink或prevlink元素。请参阅下面我使用的CSS。

 .pagination2{
  position: relative;
  right: -10px;
  height: 45px;
  width: 500px;
  background-color:#f8f8f8;
  border: 1px solid #d3d3d3;    
  outline:none;
  }

  .pagination{
  position: absolute;
  left: 180px;
  height: 35px;
  width: 120px;
  }

  .pagination-button-previous{   
    position: absolute;
    top: 10px;
    left: -160px;
    width: 74px;
    height: 24px;