หลักการมีอยู่ว่า ต้องมีการปรับโครงสร้างของ data ตอน output ออกมา
จากข้อมูล excel ที่มี 2 column จำนวน n record หรือ row หรือ แถว
( เอาเป็นว่าจะดึงมากี่ record ก็ได้ตามสะดวกค่ะ )
มาเป็นข้อมูล 1 แถว จำนวน n x 2 column ( เพราะย้ายมาแสดงแถวเดียว )
พราวเลยใช้ XML มารับข้อมูลแล้วก็ปรับโครงสร้างไปพร้อมกัน
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Xml;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//create document on memory
XmlDocument xDoc = new XmlDocument();
XmlDeclaration xDeclaration = xDoc.CreateXmlDeclaration("1.0", null, null);
xDoc.AppendChild(xDeclaration);
XmlElement rootNode = xDoc.CreateElement("ข้อมูลของคุณจิงโจ้_จะสุ่มเอานะคะ");
Random rnd = new Random(System.DateTime.Now.Millisecond);
for (int i = 0; i < 10; i++)
{
string runningNoStr = (i + 1).ToString("000");
string _NameStr = string.Empty.PadLeft(/*rnd.Next(1, 20)*/ 4, (char)rnd.Next('A', 'Z'));
string _AgeStr = rnd.Next(18, 40).ToString();
rootNode.SetAttribute("ชื่อที่_" + runningNoStr, _NameStr);
rootNode.SetAttribute("อายุที่_" + runningNoStr, _AgeStr);
}
xDoc.AppendChild(rootNode);
MemoryStream xmlStream = new MemoryStream();
xDoc.Save(xmlStream);
//resetting position prevent any access
xmlStream.Flush();
xmlStream.Position = 0;
//Create dataset to bind with on memory xml
DataSet bindData = new DataSet();
bindData.ReadXml(xmlStream);
GridView1.DataSource = bindData;
GridView1.DataBind();
}
}
}