Copyright © 2003-2009
By Suthep Sangvirotjanaphat
  Mobile: 089-967-2200, 081-915-7816
Phone: 0-2992-4877   Fax: 0-2992-4878
Fast Contact Us

GreatFriends.Biz Community

Custom Search
Copy เพื่ออ้างอิงถึงข้อความนี้:
 MESSAGE #118317 (อ่าน 911 ครั้ง)

Article - DomainDataSource DataPager with silverlight 4 DataGrid & WCF RIA Services

Tags: .NET 4.0, VS 2010, Article
 

DomainDataSource DataPager with silverlight 4 DataGrid & WCF RIA Services

การโหลดข้อมูลขนาดใหญ่ บางครั้งอาจไม่ประสบความสำเร็จเสมอไป เช่นหมดเวลาสักก่อน (Time out) หรือผู้ใช้งานรอนานเกินไป ก็ไม่เกิดผลดี กับความรู้สึกต่อการใช้งานระบบ ทำให้บางครั้งระบบดีดีอาจกลายเป็นระบบที่ห่วยๆได้ ฉะนั้นเพื่อให้ผู้ใช้งานเกิดความรู้สึกดีดี และมีความสุขในการใช้งานระบบ การโหลดข้อมูลขนาดใหญ่ เราไม่จำเป็นต้องโหลดทั้งหมด แต่เราจะ โหลดเฉพาะข้อมูลที่พอเพียงเพื่อแสดงบนหน้าเดียว โดยการ กำหนด PageSize ให้คอนโทรล DomainDataSource ขณะเดียวกัน เรายังอนุญาตให้ผู้ใช้งานสามารถโหลดข้อมูลในหน้าอื่นๆ ที่เหลือได้โดยใช้ คอนโทรล DataPager และในบทความนี้ ผู้เขียนนำเสนอตัวอย่างการใช้งาน DomainDataSource และ DataPager โดยนำตัวอย่างโปรเจ็กต์จากบทความ BusyIndicator Element Binding มาทำการออกแบบเพิ่มเติม ดังนี้

 

1. ทำการเพิ่มคอนโทรล DataPager เพิ่มเติมดังรูป

1 

 
2. ทำการปรับ Layout ใหม่โดยคลิกขวาบนคอนโทรล DataPager => Reset Layout=>All

2

 
3.คอนโทรล DataPager จะปรับตัวเองให้พอดีกับสิ่งแวดล้อมที่เป็นอยู่

3

 
4. ทำการผูกข้อมูล DomainDataSource ให้กับคอนโทรล DataPager ทำได้ง่ายๆ เพียงคลิก – ลาก – วาง โดยคลิกลาก DomainDataSource ที่ชื่อ Products ไปวางบนคอนโทรล DataPager

4

 
5. กำหนด PageSize ให้คอนโทรล DomainDataSource โดยกำหนดผ่าน พรอเพอร์ตี้ของคอนโทรล DataPager โดยกำหนด PageSize = 10 ให้มันโหลดข้อมูลทีละ 10 row

5

 
6. เมื่อกำหนดพรอเพอร์ตี้เป็นที่เรียบร้อยแล้ว ลองทดสอบรันดูครับ ผลปรากฏว่าเมื่อเรากด Next เพื่อไปหน้าต่อไป มันกลับเกิดข้อผิดพลาดขึ้น เนื่องจากว่าเรายังไม่กำหนด ให้เรียงข้อมูลก่อนตอนโหลดนั่นเอง

6

 
7. เราต้องกำหนดให้ DomainDataSource ที่ชื่อ productsDomainDataSource เรียงข้อมูลก่อน โดยเข้าไปในหน้าโค้ด xaml คลิกเลือกคอนโทรล productsDomainDataSource => ไปที่ Properties > SortDescriptors=> คลิก Edit items in this collection

7

 
8. เราจะได้หน้า Collection Editor: SortDescriptors => Select item : ให้เลือก SortDescriptor => Add ในช่อง Properties : Direction ให้เลือก Ascending และ PropertyPath ให้ระบุฟิลด์ที่เราต้องการเรียง ในที่นี้ผู้เขียนใช้ฟิลด์ ProductID จากนั้นคลิก OK

8

 
9. เมื่อกำหนดการเรียงข้อมูลเรียบร้อยแล้ว ลองทดสอบรันแอปฯ ใหม่ จากนั้นทดสอบกด Next เพื่อไปในหน้าอื่นๆ คอนโทรลสามารถทำงานได้แล้ว และที่สำคัญทั้งหมดนี้ไม่ได้เกิดจากการเขียนโค้ดแต่ประการใด แต่เกิดจากการกำหนดพรอเพอร์ง่ายๆ เพียงเท่านั้น

10 

 

การใช้งานคอนโทรล DataPager มาช่วยในการแบ่งจำนวนข้อมูลข้อมูลในการโหลด แสดงบนหน้าจอ ช่วยให้แอปพลิเคชัน ไม่จำเป็นต้องรอโหลดข้อมูลจำนวนมาก ทำให้ผู้ใช้งานต้องรอนานเกินไป ช่วยให้ความรู้สึกของผู้ใช้งาน รู้สึกดี และมีควาสุขต่อการใช้งานระบบ และที่สำคัญระบบห่วยๆ อาจกลายเป็นระบบ ดีดีได้

 

แหล่งข้อมูลดาวน์โหลด

แหล่งข้อมูลเกี่ยวข้อง 
118275 Article - BusyIndicator Element Binding มีภาพประกอบ
 
โดย nano (12 ม.ค.) VS 2010, Article
12 ม.ค. 10:35 71 0
117281 Article - Silverlight 4: SQL Data Export to Excel มีภาพประกอบ  1ขอบคุณ 1ได้ประโยชน์
 
โดย nano (4 ธ.ค. 52) C#, .NET 4.0, VS 2010, Article
11 ม.ค. 21:36 472 2
117794 Article - Drag and drop in Silverlight 4 Part 2: Drop text file to Silverlight 4 มีภาพประกอบ
 
โดย nano (23 ธ.ค. 52) C#, .NET 4.0, VS 2010, Article
23 ธ.ค. 11:19 70 0
117387 Article - Drag and drop in Silverlight 4 มีภาพประกอบ  2ขอบคุณ
 
โดย nano (8 ธ.ค. 52) C#, .NET 4.0, VS 2010, Article
22 ธ.ค. 22:17 318 3
116852 Article - BusyIndicator Control in Silverlight 4 มีภาพประกอบ
 
โดย nano (26 พ.ย. 52) C#, .NET 4.0, VS 2010, SQL Server 2005, Article
26 พ.ย. 08:01 113 0
116786 Article - Printing in Silverlight 4 มีภาพประกอบ
 
โดย nano (24 พ.ย. 52) C#, .NET 4.0, VS 2010, Article
24 พ.ย. 10:07 103 0
116722 Article - Drag-Drop Data Binding to Silverlight 4 มีภาพประกอบ  1ขอบคุณ
 
โดย nano (22 พ.ย. 52) .NET 4.0, VS 2010, SQL Server 2005, Article
22 พ.ย. 22:02 165 1
 

แหล่งข้อมูลอ้างอิง

ผู้เขียน:
nano_mvp_2009_1



nano วันที่ส่ง: 13 ม.ค. 53 09:27 GMT+7
วันที่ปรับล่าสุด: 31 ม.ค. 53 20:06 GMT+7
REPLY #1 (119047)
สุดยอดครับ


basketman วันที่ส่ง: 31 ม.ค. 53 20:06 GMT+7
วันที่ปรับล่าสุด: 31 ม.ค. 53 20:06 GMT+7

ตอบข้อความ/ร่วมแสดงความคิดเห็น

กรุณา Sign In / เข้าสู่ระบบ เพื่อโพสต์หรืออ่านข้อความ
ยังไม่ได้สมัครสมาชิก? Sign Up / สมัครสมาชิกใหม่
8 ก.ย. 20:00
Online: 137