.NET 8 Framework C# (C-Sharp) datatables.net

Data API and DataTables plugin for jQuery with ASP.NET

ตัวอย่างการเรียกใช้ API และแสดงข้อมูลด้วย DataTables โดยใช้ .NET 8 Framework, C# (C-Sharp)

Data API and DataTables plugin for jQuery with ASP.NET
Ake SuwaphanAke Suwaphan
13 February 2024

Data API and DataTables plugin for jQuery with ASP.NET

Open Data คือ ข้อมูลเปิดที่ทุกคนสามารถนำไปใช้ได้โดยอิสระ โดยไม่ต้องขออนุญาตจากเจ้าของข้อมูล โดยข้อมูล Open Data มักอยู่ในรูปแบบดิจิทัล เช่น ไฟล์ CSV, JSON, XML ซึ่งสามารถเข้าถึง ดาวน์โหลด และนำไปใช้ได้ฟรีอีกด้วย เว็บไซต์ data.go.th เป็นแหล่งรวบรวมข้อมูลเปิดของภาครัฐ (Open Government Data) ซึ่งรวบรวมข้อมูลจากหน่วยงานภาครัฐต่างๆ ทั่วประเทศไทย ข้อมูลบนเว็บไซต์นี้สามารถนำไปใช้ได้โดยอิสระ โดยไม่ต้องขออนุญาตจากเจ้าของข้อมูล

DataTables เป็น plug-in สำหรับ jQuery Javascript library ที่ช่วยจัดการตารางข้อมูลบนเว็บไซต์ให้มีประสิทธิภาพ ใช้งานง่าย สวยงาม และ รองรับฟังก์ชั่นการใช้งานที่หลากหลาย

คุณสมบัติหลักของ DataTables

  • แสดงตารางข้อมูล จัดรูปแบบตารางให้สวยงาม รองรับการเรียงลำดับ ค้นหา แบ่งหน้า การกรองข้อมูล
  • ฟังก์ชั่นการใช้งาน รองรับฟังก์ชั่นการใช้งานเพิ่มเติม เช่น การแก้ไขข้อมูล การลบข้อมูล การเพิ่มข้อมูล การส่งออกข้อมูล
  • Responsive รองรับการแสดงผลบนอุปกรณ์ต่างๆ เช่น โทรศัพท์มือถือ แท็บเล็ต
  • Themes มี Theme สำเร็จรูปให้เลือกใช้งาน
  • Extensions มี Extensions เพิ่มเติมสำหรับฟังก์ชั่นการใช้งานเฉพาะทาง

ตัวอย่างการเรียกใช้ API และแสดงข้อมูลด้วย DataTables โดยใช้ .NET 8 Framework, C# (C-Sharp)

เพิ่ม Controller ที่จะส่งข้อมูล Json ไปยัง View

        public async Task<IActionResult> DataAPI()
        {
            var apiKey = "YOUR_API_KEY";
            var apiData = await getDataFromApi(apiKey); 

            return View(apiData);
        }

เพิ่ม getDataFromApi สำหรับเรียก API และส่งค่าที่ได้รับออกไปเป็น Json

        private async Task<dynamict> getDataFromApi(string apiKey)
        {
            using (HttpClient httpClient = new HttpClient())
            {
                try
                {
                    var request = new HttpRequestMessage(HttpMethod.Get, "https://opend.data.go.th/get-ckan/datastore_search?resource_id=0c2aa4d6-90ef-405f-acf2-20507ced4fab");
                    request.Headers.Add("api-key", apiKey);

                    var content = new StringContent("{\r\n  \"Project_No\": \"GBA3\"\r\n}", null, "application/json");
                    request.Content = content;

                    var response = await httpClient.SendAsync(request);
                    response.EnsureSuccessStatusCode();

                    if (response.IsSuccessStatusCode)
                    {
                        string jsonContent = await response.Content.ReadAsStringAsync();
                        dynamic apiData = JsonConvert.DeserializeObject(jsonContent);
                        return apiData;
                    }
                    .else
                    {
                        return new { message = response.ToString() };
                    }
                }
                catch (Exception ex)
                {
                    .return .new {message = ex.Message};
                }
            }
        }

ในส่วนของ View ให้เพิ่ม @model dynamic และในส่วนของการแสดง DataTable วนลูป เพิ่มข้อมูลที่ได้รับมาจาก Controller

@model dynamic

<table id="example" class="table table-striped" style="width:100%">
    <thead>
        <tr>
                <th scope="row">No</th>
                <th scope="row">Province</th>
                <th scope="row">Region MOPH</th>
                <th scope="row">Region RDPB</th>
                <th scope="row">Provincial Cluster</th>
        </tr>
    </thead>
    <tbody>
            @if (Model != null && Model.result != null)
                 {
                   foreach (var record in Model.result.records)
                     {
                       <tr>
                       <th scope="row">@record.ProvinceNo</th>
                       <td>@record.ProvinceNameThai</td>
                       <td>@record.Region_VaccineRollout_MOPH</td>
                       <td>@record.Region_RDPB</td>
                       <td>@record.ProvincialClusterName</td>
                       </tr>
                     }
                 }
    </tbody>
    <tfoot>
        <tr>
            <th scope="row">No</th>
            <th scope="row">Province</th>
            <th scope="row">Region MOPH</th>
            <th scope="row">Region RDPB</th>
            <th scope="row">Provincial Cluster</th>
        </tr>
    </tfoot>
</table>

<script type="text/javascript">
     $(document).ready(function () {
        $('#example').DataTable();
     });
</script>

ตารางแสดงข้อมูลจังหวัดและภูมิภาคในประเทศไทย

No Province Region MOPH Region RDPB Provincial Cluster
1 กรุงเทพมหานคร กรุงเทพมหานครและปริมณฑล ภาคกลาง ส่วนกลาง
2 จังหวัดกระบี่ ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอันดามัน
3 จังหวัดกาญจนบุรี ภาคตะวันตก ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 1
4 จังหวัดกาฬสินธุ์ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนกลาง
5 จังหวัดกำแพงเพชร ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 2
6 จังหวัดขอนแก่น ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนกลาง
7 จังหวัดจันทบุรี ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 2
8 จังหวัดฉะเชิงเทรา ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 1
9 จังหวัดชลบุรี ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 1
10 จังหวัดชัยนาท ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนบน
11 จังหวัดชัยภูมิ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 1
12 จังหวัดชุมพร ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอ่าวไทย
13 จังหวัดเชียงราย ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 2
14 จังหวัดเชียงใหม่ ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 1
15 จังหวัดตรัง ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอันดามัน
16 จังหวัดตราด ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 2
17 จังหวัดตาก ภาคตะวันตก ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 1
18 จังหวัดนครนายก ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 2
19 จังหวัดนครปฐม กรุงเทพมหานครและปริมณฑล ภาคกลาง กลุ่มจังหวัดภาคกลางปริมณฑล
20 จังหวัดนครพนม ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 2
21 จังหวัดนครราชสีมา ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 1
22 จังหวัดนครศรีธรรมราช ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอ่าวไทย
23 จังหวัดนครสวรรค์ ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 2
24 จังหวัดนนทบุรี กรุงเทพมหานครและปริมณฑล ภาคกลาง กลุ่มจังหวัดภาคกลางปริมณฑล
25 จังหวัดนราธิวาส ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ชายแดน
26 จังหวัดน่าน ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 2
27 จังหวัดบึงกาฬ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 1
28 จังหวัดบุรีรัมย์ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 1
29 จังหวัดปทุมธานี กรุงเทพมหานครและปริมณฑล ภาคกลาง กลุ่มจังหวัดภาคกลางปริมณฑล
30 จังหวัดประจวบคีรีขันธ์ ภาคตะวันตก ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 2
31 จังหวัดปราจีนบุรี ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 2
32 จังหวัดปัตตานี ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ชายแดน
33 จังหวัดพระนครศรีอยุธยา ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนบน
34 จังหวัดพะเยา ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 2
35 จังหวัดพังงา ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอันดามัน
36 จังหวัดพัทลุง ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอ่าวไทย
37 จังหวัดพิจิตร ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 2
38 จังหวัดพิษณุโลก ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 1
39 จังหวัดเพชรบุรี ภาคตะวันตก ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 2
40 จังหวัดเพชรบูรณ์ ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 1
41 จังหวัดแพร่ ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 2
42 จังหวัดภูเก็ต ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอันดามัน
43 จังหวัดมหาสารคาม ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนกลาง
44 จังหวัดมุกดาหาร ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 2
45 จังหวัดแม่ฮ่องสอน ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 1
46 จังหวัดยโสธร ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 2
47 จังหวัดยะลา ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ชายแดน
48 จังหวัดร้อยเอ็ด ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนกลาง
49 จังหวัดระนอง ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอันดามัน
50 จังหวัดระยอง ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 1
51 จังหวัดราชบุรี ภาคตะวันตก ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 1
52 จังหวัดลพบุรี ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนบน
53 จังหวัดลำปาง ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 1
54 จังหวัดลำพูน ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนบน 1
55 จังหวัดเลย ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 1
56 จังหวัดศรีสะเกษ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 2
57 จังหวัดสกลนคร ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 2
58 จังหวัดสงขลา ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอ่าวไทย
59 จังหวัดสตูล ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอันดามัน
60 จังหวัดสมุทรปราการ กรุงเทพมหานครและปริมณฑล ภาคกลาง กลุ่มจังหวัดภาคกลางปริมณฑล
61 จังหวัดสมุทรสงคราม ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 2
62 จังหวัดสมุทรสาคร กรุงเทพมหานครและปริมณฑล ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 2
63 จังหวัดสระแก้ว ภาคตะวันออก ภาคกลาง กลุ่มจังหวัดภาคตะวันออก 2
64 จังหวัดสระบุรี ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนบน
65 จังหวัดสิงห์บุรี ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนบน
66 จังหวัดสุโขทัย ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 1
67 จังหวัดสุพรรณบุรี ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนล่าง 1
68 จังหวัดสุราษฎร์ธานี ภาคใต้ ภาคใต้ กลุ่มจังหวัดภาคใต้ฝั่งอ่าวไทย
69 จังหวัดสุรินทร์ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 1
70 จังหวัดหนองคาย ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 1
71 จังหวัดหนองบัวลำภู ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 1
72 จังหวัดอ่างทอง ภาคกลาง ภาคกลาง กลุ่มจังหวัดภาคกลางตอนบน
73 จังหวัดอำนาจเจริญ ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 2
74 จังหวัดอุดรธานี ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนบน 1
75 จังหวัดอุตรดิตถ์ ภาคเหนือ ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 1
76 จังหวัดอุทัยธานี ภาคกลาง ภาคเหนือ กลุ่มจังหวัดภาคเหนือตอนล่าง 2
77 จังหวัดอุบลราชธานี ภาคตะวันออกเฉียงเหนือ ภาคตะวันออกเฉียงเหนือ กลุ่มจังหวัดภาคตะวันออกเฉียงเหนือตอนล่าง 2
No Province Region MOPH Region RDPB Provincial Cluster