09 March 2010

แก้ปัญหา dropdown menu ใน ASP.NET

ผมพบปัญหาในการแสดงผลของเมนูใน ASP.NET (C#) ปัญหาแรกคือ มันแสดงผลใน Internet Explorer 8 ไม่ได้ และ ปัญหาที่สองคือ มันมีปัญหากับ Google chrome 


ผมหาวิธีแก้อยู่นานทีเดียว ส่วนนึงก็เพราะขี้เกียจด้วย หาอย่างขี้เกียจๆน่ะครับ  แต่ไม่ค่อยจะเจอวิธีแก้เลย  เลยคิดว่า ขนาดหาในเว็บภาษาอังกฤษยังเจอยากเลย มีคนโพสมากมายทั้งเว็บ ASP.NET ของ Microsoft ก็มีโพส แต่แก้ปัญหาไม่ได้  ฉะนั้น ภาษาไทยคงยิ่งหายากไปใหญ่  วันนี้เลยมาเขียนในนี้ เผื่อใครจะหาเจอ  อิอิ

/////////////////////////////////////////////////////////////////////////////


เริ่มที่ IE 8 ก่อน

เพิ่ม คำสั่งนี้ ในส่วนที่เราประกาศใช้

  //( ชื่อ IE8FIX เป็นชื่ออื่นก็ได้ แต่ต้องไปตั้งใน CSS ให้ตรงกัน)


แล้วตั้ังใน CSS 




.IE8FIX
{
z-index:100;
}

ตรงส่วน z-index ที่อ่านหลายเว็บยังไม่เข้าใจ แต่เข้าใจว่าต้องใส่ค่ามากกว่า 1 จากการทดลองใส่เยอะๆ ก็มีผลเหมือนกัน ไม่แน่ใจว่าจะมีผลตอนไหน  



///////////////////////////////////////////////////////////////////////////

วิธีแก้ใน Google Chrome และ Safari 

ใส่โค้ดเหล่านี้ใน Masterpage.cs ส่วนที่เป็น โค้ด C# นะครับ


   protected override void AddedControl(Control control, int index)
    {
        if (Request.ServerVariables["http_user_agent"].IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) != -1)
        {
            this.Page.ClientTarget = "uplevel";
        }
        base.AddedControl(control, index);
    }


ลองดูครับ คาดว่าน่าจะแก้ปัญหา Dropdown Menu ที่มีปัญหาได้นะครับ



Visitor


Cool Ringtones