วันพุธที่ 26 สิงหาคม พ.ศ. 2563

การติดต่อ ระหว่าง Gridview ของ C# form กับ C# Asp Web

ในการส่ง Data ระหว่าง Gridview 2 ระบบโดยเฉพาะ ระบบใหม่มักจะเป็น REST เพื่อความง่าย จะส่ง ผ่านกันทาง Json Format ที่เป็น String และมี {}

ในการส่าง Data ของ Gridview จะส่งโดยตรงไม่ได้ ต้องส่งทาง Datasource เช่นใน Window Form ต้องส่งเป็น Datatable แทน

  DataTable dt = new DataTable();

            foreach (DataGridViewColumn col in dgvReport.Columns)

            {

                dt.Columns.Add(col.Name);

            }


            foreach (DataGridViewRow row in dgvReport.Rows)

            {

                DataRow dRow = dt.NewRow();

                foreach (DataGridViewCell cell in row.Cells)

                {

                    dRow[cell.ColumnIndex] = cell.Value;

                }

                dt.Rows.Add(dRow);

            }

            var js = Newtonsoft.Json.JsonConvert.SerializeObject(dt);

            //  MessageBox.Show(js.ToString());

            File.WriteAllText("c:/temp/v.json",js.ToString());


สำหรับใน Web form ก็จะรับได้ ในแบบ เดียวกัน แต่ต้องมี Option ในการ convert ว่าเป็น Datatable เหมือนกัน

   string myDynamicJSON = File.ReadAllText("c:/temp/v.json");

        //Using dynamic keyword with JsonConvert.DeserializeObject, here you need to import Newtonsoft.Json  

        dynamic myObject = (DataTable)JsonConvert.DeserializeObject(myDynamicJSON, typeof(DataTable));

        


        //Binding gridview from dynamic object   

        GridView1.DataSource = myObject;

        GridView1.DataBind();

ไม่มีความคิดเห็น:

แสดงความคิดเห็น