Archive for the ‘การศึกษา’ Category

 

 

 

สาธิตการเพิ่มผู้เรียนลงในรายวิชา
วิดีโอสอนการใช้ระบบ LMS Moodle
วิทยาลัยนานาชาติ มหาวิทยาลัยนเรศวร
หน่วยเทคโนโลยีสารสนเทศ

 

สำหรับคลิปนี้เป็นเนื้อหาสำหรับผู้สอนที่ได้รับรายวิชาที่สอนแล้ว หากไม่มีสามารถติดต่อได้จากผู้ดูแลระบบ Moodle ครับ

 

หากภาพมีขนาดเล็กขอให้คลิกขยายเต็มจอครับ

ต่อจากบทความที่แล้ว เราได้สร้าง Database , Entity Data Model และในบทความนี้จะสร้างเพจการเรียกข้อมูล Employee ออกมาแสดง โดยผ่าน Control TreeView กันต่อไป

การดำเนินงาน (ต่อจากตอนที่แล้ว)

1. เรียกเพจ Default.aspx จาก Solution Explorer ด้วยการคลิกสองครั้ง

image

2.ให้ลบข้อความที่ส่วนที่เลือกเอาไว้ทิ้ง

image

3.

imageแล้วลาก Treeview control มาจาก ToolBox ทางด้านซ้าย ไปวางบนเพจที่ว่าง

imageจะได้ผลดังนี้

4. ที่ source View ให้ระบุ Code ดังนี้

image

5.ให้คลิกสองครั้งที่ WebForm ของ Default.aspx นี้ จะปรากฏหน้าต่างการเขียน  Code ขึ้นมา (หากไม่ปรากฏให้กดปุ่ม F7 แทนก็ได้ )

image

6. จากนั้นให้ using Entity Data Model โดยเขียนเพิ่มไปที่ส่วนต้นของ Code
เมื่อเพจเริ่มโหลดขึ้น เราต้องการให้ค้นหาข้อมูลของประธานของบริษัท ซึ่งหมายถึง Employee ที่มี Field ชื่อ ReportsTo มีค่าเท่ากับ Null

ให้เพิ่มโค้ดลงไปดังนี้

image

ที่บรรทัดที่ 7 ให้เพิ่มการเรียกใช้ EDM

#13 ประกาศตัวแปรเชื่อมต่อกับ EDM

# 15-21 ที่เหตุการณ์ Page_Load จะทำการตรวจสอบว่าเพจถูกรันขึ้นมาครั้งแรก หากใช่ก็จะไปทำงานที่ Function การค้นหา Employee ที่เป็นประธานบริษัท

#23-30 Function เข้าถึงประธานบริษัท
ผมใช้ LINQ เพื่อการเรียกข้อมูล โดยเรียกจาก Entity.Employee และกำหนดเงื่อนไขว่าจะต้องเป็นประธานบริษัทเท่านั้น

#29 โยนค่าข้อมูลของประธานบริษัทไปยัง Function ที่เราจะสร้างขึ้นชื่อว่าAccessNodes

7. ให้เพิ่ม Function ลงไปดังนี้

image

จากโค้ดเป็น Function เพื่อการวนลูปเรียกค่าเพื่อแสดงใน Treeview Control

#34 – 52 เป็นการประกาศลูปเพื่อการเข้าถึง Collection และนำค่าไปใช้ภายในบล็อคโค้ด

#36 ประกาศตัวแปรให้เป็นโหนดย่อยของ TreeView

#38 นำชื่อและสกุลไปแสดงเป็นข้อความของโหนดย่อย

#39 นำ Id ของพนง. ไปใช้เป็นค่าอ้างอิงในโหนดย่อย

#40 เพิ่มค่าโหนดที่ได้จากขั้นตอนที่ผ่านมาเข้าสู่ Treeview Control

#42 นับจำนวนโหนดลูกของ Id ที่กำลังทำงานอยู่นี้ (ส่วนนี้ผมใช้ LINQ เพื่อการค้นหาและส่งข้อมูลออกมาให้นับจำนวน)

#44-51 ผมได้ตรวจสอบเงือ่นไขว่ามีโหนดลูกของ พนง คนที่กำลังทำงานในลูปรอบนี้หรือไม่ หากมีก็ให้กำหนดค่าคุณสมบัติ populateondemand กับ Treeview เป็นจริง หากไม่มีก็ไม่เซ็ทค่านี้

8. เราต้องการให้คลิกที่ลิ้งของ control และแสดงแยกย่อยรายชื่อ พนง ที่เป็นลูกน้องออกมา เราจะต้องเพิ่ม Function เข้าไปนั่นคือ…

image

ผมใช้ LINQ ช่วยการเรียกข้อมูลของพนงที่ขึ้นตรงกับ Id ของพนงที่ได้ระบุเข้ามา แล้วโยนค่ากลับไปให้ Function AccessNodes เพื่อวนลูปและแสดงผลอีกครั้ง

9. และสุดท้ายสำหรับเหตุการของคอนโทรล Treeview ให้กลับไปที่หน้า Design แล้วคลิกที่คอนโทรล Treeview แล้วดูที่หน้าต่าง properties ทางด้านขวา ให้คลิกที่ปุ่ม Event ที่แสดงเป็นรูปสายฟ้า

image

image

แล้วให้คลิกสองครั้งที่เหตุการณ์ชื่อ TreeNodePupulate

จะปรากฏหน้า code behind อีกครั้งพร้อมกับ event ที่ vs ได้สร้างให้เรา ให้เพิ่มโค้ดลงไปดังนี้

image

เมื่อมีการคลิกที่ลิ้งของคอนโทรลจะมีการส่งค่า id ของโหนดที่ได้คลิกลงไปใน Function AccessNodesSub

เมื่อเสร็จสิ้นพิธีกรรมกันแล้ว ให้กด F5 บนคีย์บอร์ดเพื่อทดลองรันกันครับ

ทดสอบ ๆ 123

image

เมื่อรันขึ้นมาครั้งแรกปรากฏชื่อประธานบริษัท เมื่อคลิกที่เครื่องหมาย + ด้านหน้าจะแสดงผลดังนี้

image

สุดท้ายนี้..

ผมขอขอบคุณ Internet ที่ช่วยให้ผมเข้าถึงแหล่งข้อมูลดีๆ สำหรับบทความนี้ผมประยุกตร์มาจากคุณ

Teemu Keiski

ซึ่งได้เขียนไว้ที่… http://aspalliance.com/732

แต่เนื้อหาที่เค้าเขียนเป็นการใช้ ADO.net นะครับ ส่วนบทความที่ผมเขียนนี้ใช้ LINQ

Happy coding !! Open-mouthed smile

By Kwanchai !!!

การนำข้อมูลมาแสดงผลแบบลำดับชั้นหรือภาษาอังกฤษใช้คำว่า Hierarchy โดยข้อมูลที่มีในฐานนั้น อาจดูยุ่งยากวุ่นวาย แต่ไม่ยากจนเกินไปนักเมื่อทีมพัฒนา ASP.Net ได้ออกคอนโทรล TreeView เพื่อช่วยนำเสนอการแสดงผลดังกล่าว

สิ่งที่ต้องเตรียม

1. เครื่องมือพัฒนา MS Visual Studio 2010 สำหรับตัวอย่างนี้ผมใช้รุ่น Express

2.ระบบฐานข้อมูล MS SQLServer 2008 Express

3.ฐานข้อมูล Northwind หากไม่มีให้โหลดจาก www.codeplex.com

จุดประสงค์

เราจะแสดงผลข้อมูลของลูกจ้างในบริษัท โดยที่แสดงชื่อของพนักงานที่เป็นหัวหน้างาน และสามารถแสดลงรายชื่อของลูกน้องที่ดูแล โดยใช้ Control TreeView

image

ดำเนินการ

1.สร้าง WebSite ขึ้นใหม่ คลิกเลือกที่ Visual C# เลือก ASP.Net Web Site และตั้งชื่อว่า TreeView_CS แล้วคลิก OK

image

 

2.จากนั้นเชื่อมต่อไปยัง Database Northwind ด้วยการคลิกที่ Database Explorer

image

 

3. คลิกที่ปุ่ม Connect to database

image

 

4.ระบุชื่อเครื่อง db server ในบทความนี้ผมใช้เครื่องเดียวกันนี้เป็น db server และใส่เพียง . เท่านั้น ส่วน database เลือก Northwind แล้วคลิก OK

image

 

5.เมื่อการเชื่อมต่อเสร็จสิ้น จะปรากฏตารางและวิวดังนี้

image

 

6.สร้าง Entity Data Model โดยการคลิกที่เมนู Website แล้วเลือก Addn new item

image

 

7.

image

เลือก ADO.NET Entity Data Model

 

image

ตั้งชื่อ DataModel ดังนี้

แล้วคลิก Add

 

 

8. เมื่อคลิก Add แล้ว จะปรากฏกล่องข้อความดังนี้

image 

นั่นคือ EDM ที่ได้สร้างขึ้นจะถูกนำไปเก็บที่ Folder App_Code ให้ตอบ Yes

 

9.image

จากนั้นเราจะสร้าง DataModel กัน เมื่อปรากฏหน้าต่างนี้ขึ้นให้เลือก Generate From Database แล้วคลิก Next

 

 

 

 

 

 

10. image

หน้าต่างการเชื่อมต่อกับฐานข้อมูล ให้เลือกการเชื่อมต่อกับ Northwind ตามที่ได้สร้างไว้แล้ว

 

และคลิกเลือกที่ Save Entity connection ลงใน Web.config

แล้วคลิก Next

 

 

11.

image

สำหรับบทความนี้ต้องการเพียงตาราง Employees เท่านั้น

และให้คลิกเลือก Pluralize …

แล้วคลิก Finish

 

 

 

 

12. รอสักครู่การสร้าง EDM จะเสร็จสิ้นและได้ผลดังนี้

image

 

เสร็จสิ้นการจัดเตรียมสภาพแวดล้อมการพัฒนาแล้วครับ ต่อไปเราจะเริ่มลงมือพัฒนากันจริงๆ ซะที ทั้งนี้ผมขอเอาไว้บทความถัดไปดีกว่า เพื่อไม่ให้ยาวเกินไป

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

 

เจอกันใหม่บทความหน้าครับ