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

wave
มานพ กองอุ่น 13 เม.ย. 2017, 17:06:53 3,997

ปัญหาอย่างหนึ่งของการสร้าง 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

เขียนบทเรียนรู้ของคุณ

รายละเอียด
  • ดู 3,997
  • รักเลย 0
  • หมวดหมู่ Yii Framework 2 (Yii2)
  • เขียนเมื่อ
  • แก้ไขเมื่อ
  • Tags gridview pagination multiple
ข้อมูลผู้เขียน
มานพ กองอุ่น

มานพ กองอุ่น

เป็นสมาชิกเมื่อ: 18 ธ.ค. 2009

เนื้อหาที่เกี่ยวข้อง