List กับ ArrayCollection

ช่วงนี้กำลังแก้ Checkbox อย่างจริงๆจังๆ แล้วก็เจอปัญหาตามมามากมาย เริ่มจาก Checkbox ไม่เปลี่ยนหลังจากเลือกไปแล้วเพราะว่า method updateDisplayList ของ renderer ยังไม่ถูกเรียกเมื่อเราคลิกที่ List วิธีที่จะทำให้มันเรียกก็ต้องเซท array กลับไปอีกที แต่ปัญหาใหญ่ที่สุดที่เจอแล้วก็นั่งแก้กับ @iporsut อยู่ซะนานเลยคือเรื่อง List กับ ArrayCollection เรื่องเกิดขึ้นเมื่อตัวข้อมูลที่ใช้อยู่มันดันใช้ข้ามประเภทของ ListBase คือ List กับ DataGrid แล้วทีนี้ DataGrid มันสามารถสั่งเรียงข้อมูลได้โดยกดที่หัวแถว สิ่งที่มันทำคือสร้างวัตถุ Sort แล้วยัดเข้าไปที่ ArrayCollection แล้วสั่ง refresh ซะซึ่งข้อมูลที่ออกมาทั้ง List และ DataGrid ก็ดูเรียงสวยงามดี แต่ว่า List ผมกับ method click ที่ใช้สำหรับแสดง Checkbox ด้วยจะใช้ไม่ได้อีกเลย ตอนแรกก็งงว่าทำไม ลองไล่ดูแล้วก็พบว่า array ที่ผมใช้รับ item ที่ถูกเลือก มันกลายเป็น array เปล่าไป(@iporsut debug แล้วรายงานมาอีกทีด้วย ^^) นั่งแก้อยู่นานจนผมจนปัญญาหละ แล้ว @iporsut ก็บอกว่าให้เปลี่ยนเป็น selectedIndice ดูปรากฏว่าหาย – -” คือ DataGrid ทำงานได้ถูกต้องแล้วเหลือ List จนในที่สุด ก็ได้รับคำแนะนำมาอีกทีว่า เนื่องจาก array ของ selectedIndices มันหายก็ copy มันใหม่ซะเลย คราวนี้ทำงานได้สวยงาม ถ้าใครยังงงๆ ว่าผมทำอะไรก็ลองดูตัวอย่างด้านล่างเลยละกัน แล้วก็ โค้ด

Tags: , , ,

Post Author

This post was written by llun who has written 511 posts on แนท (/næt/).

I'm programmer at Throughwave

3 Responses to “List กับ ArrayCollection”

  1. iporsut June 18, 2008 at 3:42 pm #

    อืม ก็แก้ปัญหาไปพอผ่าน แต่ก็ยังสงสัยอยู่ดีทำไมมันต้องขโมย Array ไปด้วยตอน กำหนด selectedItems กับ selectedIndics เดี๋ยวว่างๆแกะดูใหม่

  2. llun June 19, 2008 at 9:54 am #

    @iporsut ไม่เป็นไรๆ เดี๊ยวผมขุดต่อ ฮะๆ component นี้ยังต้องเขียนต่ออีกยาว T T” นี่เพิ่มมาแค่ View เดียวเอง ยังเหลืออีกสอง

  3. @sut June 11, 2010 at 2:11 pm #

    พี่ป้อ เขียน flex ด้วยหรอคะ

    บังเอิญแวะมาเจอบล็อกค่ะ

    กำลังหาวิธีบางอย่างเกี่ยวกับ flex

    เอ๊ะ โพสกันตั้งแต่เมื่อไรนิ

Leave a Reply