กำหนด Pagination Param สำหรับ Multiple GridView ใน Yii Framework 2

คู่มือการเรียนรู้ Yii Framework 2 (Yii2)

บทเรียนดีๆ สำหรับผู้ที่ต้องการแบ่งปัน บทเรียนของคุณอาจมีค่าสำหรับอีกหลายๆ คน

beta version

กำหนด Pagination Param สำหรับ Multiple GridView ใน Yii Framework 2

มานพ กองอุ่น gridview pagination multiple 1,065

ปัญหาอย่างหนึ่งของการสร้าง GridView หลายๆ ตัวในหน้าเดียวกันคือเมื่อมีการเลือก หน้า (Pagination) ทุกๆ GridView จะเปลี่ยนหน้าเหมือนกันหมด ในบทเรียนรู้นี้เราจะมากำหนด Page Param แยกอิสระต่อกัน เพื่อให้เวลาเลือกหน้าในแต่ละ GridView ไม่กระทบกัน โดยสามารถตั้งค่าผ่าน DataProvider ดังต่อไปนี้

$dataProvider = new ActiveDataProvider([
	'query' => LatestThread::find()->orderBy(['sorting' => SORT_DESC]),
	'sort' => [
		'sortParam' => 'all-sort',
	],
	'pagination' => [
		'pageSize' => 100,
		'pageParam' => 'all-post',
	],

]);
$dataProviderFreelance = new ActiveDataProvider([
	'query' => LatestThread::find()->where(['forum_id' => 2])->orderBy(['sorting' => SORT_DESC]),
	'sort' => [
		'sortParam' => 'freelance-sort',
	],
	'pagination' => [
		'pageSize' => 100,
		'pageParam' => 'freelance-post'
	],

]);

หรือกำหนดลักษณะนี้ก็ได้

$DataProvider->pagination->pageParam = 'all-post';
$DataProvider->sort->sortParam = 'all-sort';

$DataProvider2->pagination->pageParam = 'freelance-post';
$DataProvider2->sort->sortParam = 'freelance-sort';

เพียงเท่านี้ก็ทำให้การเลือกดู Page แยกอิสระต่อกันได้แล้ว


หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com
มานพ กองอุ่น

มานพ กองอุ่น
admin

  • 2 เพื่อน
  • 9 ผู้ติดตาม
  • 758 โพสต์