จำเป็นต้องแสดงข้อมูลเมื่อมีการส่งคืนโดยใช้บริการเว็บ/jquery

ฉันมีการดำเนินการ (ซึ่งฉันไม่สามารถเปลี่ยนแปลงได้) ที่เริ่มเธรดที่ทำการเรียกไปยังฐานข้อมูล Oracle ของเราเพื่อดูว่าโรงแรมบางแห่งมีห้องว่างในวันที่กำหนดหรือไม่

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

ฉันกำลังพยายามเขียนการดำเนินการนี้ใหม่ ฉันยังต้องค้นหา Oracle ในเธรดเพื่อรับข้อมูลความพร้อมใช้งาน แต่ฉันต้องการแสดงข้อมูลตามที่ส่งคืน (เป็นชิ้น ๆ 5, 10 ฉันยืดหยุ่นได้) แทนที่จะให้ผู้ใช้นั่งอยู่หน้าจอเพื่อ นานถึง 4 นาทีก่อนที่จะพ่นผลลัพธ์ที่สมบูรณ์ลงใน GridView

ฉันจะทำสิ่งนี้ได้โดยตรงจากหน้า .aspx ได้อย่างไร เพื่อที่ฉันจะสามารถทำการเรียกบริการเว็บและเติมกริด (JqGrid?) พร้อมผลลัพธ์ได้

หากฉันไม่ได้ให้ข้อมูลที่เพียงพอหรืออธิบายสิ่งที่ฉันพยายามทำให้สำเร็จ โปรดแจ้งให้เราทราบ แล้วฉันจะอธิบายรายละเอียด


person TheGeekYouNeed    schedule 02.08.2011    source แหล่งที่มา


คำตอบ (1)


Oracle จัดเตรียมฟิลด์ในแต่ละแถวที่เรียกว่า "rowid" (http://www.adp-gmbh.ch/ora/concepts/rowid.html)

ครั้งแรกที่คุณส่งข้อความค้นหา ให้ส่ง int (x) เพื่อกำหนดหมายเลขแถวสูงสุดที่คุณต้องการ ให้เซอร์วิสส่งคืนจำนวนแถวทั้งหมดและแถว x แรก

จากนั้น ในครั้งที่ 2 ที่คุณส่งข้อความค้นหา รับแถว x ถัดไป ล้างและทำซ้ำ

โดยทั่วไป คุณจะต้องส่งแบบสอบถาม ajax สำหรับแถว x ถึง y ในแต่ละครั้งจนกว่าคุณจะโหลดทั้งหมด

ฉันขอแนะนำให้เพจด้วยเช่นกัน เนื่องจากโดยทั่วไปแล้วผู้ใช้ไม่ต้องการเห็นผลลัพธ์หลายร้อยรายการในแต่ละครั้ง

person Joseph Hamilton    schedule 02.08.2011
comment
น่าเสียดายที่ฉันไม่สามารถรับแถวกลับมาได้ เนื่องจากฉันกำลังเรียกขั้นตอนการจัดเก็บของ Oracle ซึ่งไม่สามารถเปลี่ยนแปลงได้ในขณะนี้ แต่เธรดที่ทำการเรียกของ Oracle นั้นจะถูกแยกส่วนตามที่คุณอธิบาย แต่ละเธรดสามารถส่งคืนได้เพียงแถวเดียว (ซึ่งห่วย) แต่นั่นคือสิ่งที่ฉันต้องจัดการ ดังนั้น แทนที่จะปล่อยให้เธรดเหล่านี้ทั้งหมดในคราวเดียว ฉันสามารถแบ่งเธรดออกเป็นกลุ่มได้ แต่ฉันจะคืนอะไรล่ะ? อาร์เรย์ของวัตถุ? และในขณะที่ฉันเรียกใช้บริการเว็บของฉันเพื่อส่งคืนสินค้า ฉันจะผนวกผลลัพธ์เข้ากับ jqgrid ได้อย่างไร โค้ดตัวอย่างและลิงก์เยี่ยมมาก นี่เป็นความพยายามครั้งแรกของฉัน - person TheGeekYouNeed; 03.08.2011
comment
บางอย่างเช่นนี้ ฉันรู้จักจาวาสคริปต์บ้าง แต่ไม่ใช่จุดแข็งของฉัน - person TheGeekYouNeed; 03.08.2011
comment
สิ่งที่คุณจะได้คืนคือ JSON ซึ่งมีลักษณะดังนี้: [ { myProperty: Value, anotherProperty: 1234 }, { myProperty:Value, anotherProperty:2343} ] วงเล็บเหลี่ยมแสดงถึงอาร์เรย์ โดยแต่ละวัตถุจะอยู่ในเครื่องหมายปีกกา แต่คุณไม่ต้องการสร้างสิ่งนี้ด้วยตนเอง ให้ใช้ DataContractJSONSerializer ที่ .NET จัดให้ ในส่วนท้ายของจาวาสคริปต์ ให้ใช้ JSON.parse เพื่อแปลงสตริงเป็นอ็อบเจ็กต์ Javascript จริง (Javascript Object Notation = JSON) - person Joseph Hamilton; 04.08.2011
comment
เกี่ยวกับ JqGrid มันใช้โมเดลการประกาศ คุณบอก url ว่าสามารถรับ JSON จากที่ไหน (ในรูปแบบสตริง) และคอลัมน์ และมันจะแสดงในตาราง trirand.com/blog/jqgrid/jqgrid.html - person Joseph Hamilton; 04.08.2011