จากโค๊ดคือเราโหลด xml มา แล้วสร้าง DataTable เพื่อเก็บ xml แล้วให้ xml นั้นแสดงบน dropdownlist เวลาแสดงมันก็จะแสดงเฉพาะ DataTextField ซึ่งก็คือ "description" นั่นเอง คือเราต้องการให้ลูกค้าเลือกข้อมูลจาก dropdownlist ว่าต้องการซื้ออะไรแล้วส่ง session["id"] ไปทำงานในเพจต่อไป คำถามคือ เราจะมีวิธีดึง price ของ id ที่ลูกค้าเลือกออมาด้วยยังไงคะ เพราะเราต้องการส่ง id กับ price ไปค่ะ
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
//myWebClient.Encoding = Encoding.UTF8;
// Create a new NameValueCollection instance to hold some custom parameters to be posted to the URL.
NameValueCollection myNameValueCollection = new NameValueCollection();
string uri = ("http://www.xxx.com/web-hosting/web-service/get-xxx-detail.php");
// 'The Upload(String,NameValueCollection)' implicitly method sets HTTP POST as the request method.
byte[] responseArray = myWebClient.UploadValues(uri, "POST", myNameValueCollection);
// Decode and display the response.
string returnxml = Encoding.UTF8.GetString(responseArray);
/*สร้าง DataTable เพื่อเก็บ xml */
DataTable rec = new DataTable();
rec.Columns.AddRange(new DataColumn[] {
new DataColumn("id", typeof(string)),
new DataColumn("price", typeof(string)),
new DataColumn("description", typeof(string))
});
XmlDocument doc = new XmlDocument();
doc.LoadXml(returnxml);
foreach (XmlNode recNode in doc.GetElementsByTagName("detail"))
{
เก็บ DataTable (rec) ตัวที่โหลดมาจาก XML ไว้นะครับเอาไว้เป็น Global
พอเราได้ Value ของ ID มาจาก DropdownList หลังจากการเลือกใน DropdownList
เราก็เอา ID ที่ได้มาจาก DropdownList มาวนเช็คใน DataTable ประมาณนี้ครับ
Code (C#)
string _id = "0"; //ค่า id ที่ได้มาจาก DropdownList ไม่ใช่ค่าศูนย์นะครับ
//วนเช็คข้อมูลที่อยู่ใน rec หรือ DataTable ของเรานั้นเอง
for (int i = 0; i < rec.rows.count; i++){
if(rec.rows[i]["id"] == _id)
{
return rec.rows[i]["price"].ToString(); //เอาค่า price ออกมาจาก DataTable
}
}
Date :
2010-02-02 12:53:08
By :
popotaro2
No. 2
Guest
ขอบคุณมากนะคะ เดี๋ยวจะทำตามดูนะคะ ขอบคุณค่ะ
Date :
2010-02-02 14:38:12
By :
bo
No. 3
Guest
ลองทำตามที่คุณ popotaro บอกแล้วก้อได้ค่า price ออกมาแล้ว แต่เราเก็บ DataTable ในไฟล์ Global ตามที่คุณ popotaro ไม่เป็นอ่ะค่ะ เราใช้วิธีโหลด xml อีกรอบใน event dropdownlist ซึ่งมันไม่ควรที่จะทำแบบนั้น
มันเป็นการโหลดซ้ำซ้อน รบกวนช่วยเอาโค๊ดการเก็บ DataTable ในไฟล์ Global และการเรียกใช้ ให้ดูหน่อยได้มั้ยคะ เพราะเราต้องทำในลักษณะแบบนี้อิกหลายเพจ ยังไงรบกวนหน่อยนะคะ มือใหม่จิงๆค่ะ