Yii的widget都很实用。
我是懒人,分页就直接用了CLinkPager。
不过在实际项目上,有些地方总需要对用户体验需要做定制,比如分页并不能加锚点。
比如说,现在我是一篇blog,对回复做了分页。
这个时候,我点击“下一页”,“上一页”。这个时候我希望是直接跳转到回复模块的内容。但是blog本身内容又太长了。。。所以需要加锚点。
我是这样解决的,修改了一下CLinkPager,在生成的Chtml::link的地方做判断,检测是否有那么name,有则加上‘#name’; 
<?php $this->widget('CLinkPager',array('pages'=>$pages_review,'name'=>'div_main_content')); ?>
于是,不想每次更新框架都去修改… 
qiang
(Qiang Xue)
2
不要去修改框架代码,这种情况最好是派生新的类,这也是OOP的精髓之一。
terry39
(Gamezoom)
4
我不用CHTML,但是我知道 CUrlManager的 createUrl,是可以支持 ‘#’ 的!
$params = array('userid' => 100, '#' => '锚名称');
$this->createUrl($route, $params);
我想 CLinkPager 如果里面如果可以传递自定义参数的话,你也可以试试
yiqing95
(Yiqing 95)
6
追踪这个方法
createPageUrl
知道分页url调用的是当前控制器的createUrl方法 一种办法是复写当前控制器的该方法 但最好有一个变量能够切换是否使用底层的 createAbsoluteUrl(控制器都有该方法) 这样额外定义一个公共变量 在分页前调用这个公共变量类似如:
Yii::app()->controller->createUrlAsAbs = true ;(你自己定义这个变量 并复写createUrl方法 在其中判断这个变量的值 如果是true那么切换到底层的createAbsoluteUrl方法上就好)
以上只是我的实现思路 并没有实际操作 所以对错未知
仅仅给你个参考而已
colee
(Colee1985)
7
嗯,首先谢谢回答,我看了源码,似乎是不可能通过配置的方式实现,所以我派生了一个子类来做,分页定制的地方多,所以还是不直接使用CLinkPager比较好。