入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

yii中实现数组分页(用yii自带控件实现自己定义列表分页)

创建时间:2013-12-12 投稿人: 浏览次数:168

今天开发一个新功能 就是把两个表中的数据合在一起实现分页的功能(两个表中的字段是不一样的,有共同的属性,但字段名是不一样的)

效果如下图所示:


主要实现部分


courseController.php

		$cid = $this->_gets->getParam("cid",0);
		$levelid = $this->_gets->getParam("levelid","");
		$title = "全部课程";
		if($cid)
		{
			$title = SubCate::model()->getName($cid);
		}
		$this->pageTitle = $title;
		$listinfo = array();
		if($cid)
		{
			$cinfo = Course::model()->findAll("course_class=$cid");
			$finfo = UpFile::model()->findAll("file_class=$cid");
		}
		else
		{
			$cinfo = Course::model()->findAll();
			$finfo = UpFile::model()->findAll();
		}
		if($cinfo)
		{
			foreach ($cinfo as $plist)
			{
				$temp = array();
				$temp["type"] = 1;
				$temp["title"]=$plist->course_title;
				$temp["desc"] = $plist->course_describe;
				$temp["pic"] = $plist->course_pic;
				$temp["id"] = $plist->course_id;
				$temp["url"] = $this->createUrl("/course/special",array("id"=>$plist->course_id));
				array_push($listinfo,$temp);
			}
		}

		if($finfo)
		{
			foreach ($finfo as $plist)
			{
				$temp = array();
				$temp["type"] = 2;
				$temp["title"]=$plist->file_title;
				$temp["desc"] = $plist->file_describe;
				$temp["pic"] = $plist->file_pic;
				$temp["id"] = $plist->file_id;
				$temp["url"] = $this->createUrl("/course/detail",array("itemid"=>$plist->file_id));
				array_push($listinfo,$temp);
			}
		}
		$info = new CArrayDataProvider($listinfo, array(
			//"keyField"=>"itemid",
			"totalItemCount"=>count($listinfo),
			"pagination"=>array("pageSize"=>40,),
		));
		$this->render("list",array("listinfo"=>$info,"title"=>$title,"levelid"=>$levelid,"cid"=>$cid));

view/list.php

		<?php
		$this->widget("zii.widgets.CListView", array(
			"id"=>"Clist",
			"dataProvider"=>$listinfo,
			"itemView"=>"_list_view",//要注意的地方
			"template"=>"<ul class="list_sub js_list_sub select">{items}</ul><div class="light">{pager}</div>",//分页填充
			"enableSorting"=>false,
			"ajaxUpdate"=>false,
			"pager"=>array(        //通过pager设置样式   默认为CLinkPager
				"prevPageLabel"=>"上一页",
				"firstPageLabel"=>"首页", //first,last 在默认样式中为{display:none}即不显示,通过样式{display:inline}即可
				"nextPageLabel"=>"下一页",
				"lastPageLabel"=>"末页",
				"maxButtonCount"=>40,
				"header"=>"",
			 ),
		));
		?>

view/_list_view.php //以下内容是要重复的部分

<li <?php if($data["type"]==1):?>class="first"<?php endif;?>>
<div class="img">
<a href="<?php echo $data["url"];?>" class="img_a">
<img src="/media/school/<?php echo $data["pic"]?>" width="209" height="129" />
<div class="bgcolor hide"></div>
<div class="img_txt hide"><?php echo Tool::str_cut($data["desc"], 80)?></div>
</a>
<div class="img_btn hide">
<a href="javascript:void(0);" class="add_collect">收藏</a><a href="javascript:void(0);" class="add_plan">加入学习计划</a>
</div>
</div>
<h3><a href="<?php echo $data["url"];?>"><?php echo Tool::str_cut($data["title"],50,"");?></a></h3>
</li>


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。