บทความ

ASP.NET MVC with select2

CONTROLLER 1: public JsonResult GetSupplier( string keyword) 2: { 3: var data = ( from s in DataContext.Supplier 4: join st in DataContext.SupplierType on s.SupplierTypeId equals st.Id 5: select new { supplierId = s.Id, supplierName = s.Name + "(" + st.Name + ")" }); 6:   7: return Json( 8: string .IsNullOrEmpty(keyword) ? 9: data.Select(c => new { id = c.supplierId, name = c.supplierName }) : 10: data.Where(c => c.supplierName.StartsWith(keyword)).Select(c => new { id = c.supplierId, name = c.supplierName }), JsonRequestBehavior.AllowGet); 11: } 12:   13:   14:   15:   16: public JsonResult GetSupplierById( int supplierId) 17: { 18: var data = ( from s in DataContext.Supplier ...

หลักการตั้งชื่อ Database Table, Column, ect.. (English Version)

การกำหนดสีพื้นหลังให้กับ Web Site

การกำหนดสีให้ website ทำได้โดยใส่ style ที่ tag body เช่น <body style= "background-color:red" > ... </body ซึ่งในตัวอย่างเราจะกำหนดเป็นสีแดง (สามารถใช้ name หรือ code ของสีก็ได้) แต่ถ้าจะให้ดูดีตามยุคสมัยเราก็จะแยกออกเป็น เป็น file.css เช่น site.css โดยเนื้อให้ใน file นี้ก็เหมือนกับข้างบนคือกำหนด style ให้ tag body ดังตัวอย่างต่อไปนี้ body { background-color:red ; } จบ แต่ ไม่จบ ไอ้ browser Google Chrome จะแสดงสีขาวต่อท้ายมาส่วนข้างล่างในกรณีที่ เนื้อหาไม่เต็ม 1 หน้าจอ เพราะว่าใร html เราจะเรียง tag ตามนี้ คือ <html> <head> .... </head> <body> .... </body> </html> ซึ่งถ้ามองดี ๆ จะเห็นว่า body จะเป็น child element ของ html (หรือ body มี parent เป็น html) และถ้า content ใน body มันไม่เต็มหน้าที่เหลือก็คือ html ซึงมันยังไม่ได้กำหนดสี background นั้นเอง ท่าน Chrome ของเรา Doctor เลยทีเดียวเสือกเป็นแบบนี้ เจ้าอื่นไม่เป็น ทางแก้ก็คือกำหนดสีให้ html ไปด้วยเลย โดยเขียน css แบบนี้ html , body { ba...

Best Practices for Speeding Up Your Web Site

Yahoo Developer Network - Best Practices for Speeding Up Your Web Site

ปัญหา jQuery บน ie7 : ตอน attribute

จาก html code ต่อไปนี้ คือต้องการใช้ jQuery ตรวจสอบว่า textbox อันนี้มี attribute disabled หรือไม่เพื่อเอาไปเป็นเงื่อนไขในการทำงานอื่นต่อไป < html   xmlns = "http://www.w3.org/1999/xhtml" >    < head >         < title > </ title >         < script   src = "js/jquery-1.4.3.min.js"   type = "text/javascript" > </ script >    </ head >    < body >         < input   type = "text"   id = "txtd"  disabled  />         < input   type = "text"   id = "txt" />    </ body >    </ html >    ปัญหาคือ ie7 มันไม่ work if  (jQuery( '#txt' )[0].attributes[ 'disabled' ] == undefined)        // แบบนี้ ถ้า ie7 จะ ret...

FancyBox not work in UpdatePanel

ปัญหาที่พบ เวลาเรานำ FancyBox เข้ามาใช้ใน Web Page ของเรา เราจะต้องทำการเรียกคำสั่ง $("a").fancybox(); ที่ $(document).ready(function() { .. } เพื่อ initialize FancyBox ซึ่ง Web เราก็จะสวยงามตามประสา แต่นรกมาเยือนเมื่อเราเขียน web app บน asp.net โดยใช้ "ASP.NET AJAX Control Toolkit" และใช้ Component "UpdatePanel" มาครอบไว้ที่ GridView มันจะทำให้ web page ของเราสามารถ send request แบบ asynchronous ได้ (พูดง่าย ๆ คือ page จะไม่แว๊บ เวลา server control ทำงาน) เช่น กดปุ่ม delete บน GridView แล้วเขียน Code ให้ Refresh GridView ผลที่ได้คือ page จะไม่แว๊บเลย แต่ถ้าใน GridView มี link ไปยังรูปภาพที่เป็น FancyBox มันจะไม่ทำงาน (คือ FancyBox ไม่ขึ้น จะเป็นการ Link โดยเปิดรูปภาพเฉย ๆ) สาเหตุ ทุกครั้งที่มีการเรียก asynchronous ผ่าน AJAX Control Toolkit มันจะ refresh ใหม่ทุกครั้งเพียงแต่เราไม่เห็น และการ Refresh Page แบบพิเศษนี้แหละที่ทำให้ jQuery ไม่สามารถจับ event $(document).ready(...) ได้ การแก้ปัญหา เราก็แค่สั่ง initialize FancyBox ใหม่อีกครั้ง เมื่อมีการ...

Singleton Pattern

Singleton pattern เป็น design pattern ที่ใช้จำกัดจำนวน object ที่ถูกสร้างในขณะที่โปรแกรมทำงาน มีประโยชน์ในสถานการณ์ที่ทั้งระบบต้องมี object เพียงตัวเดียวเพื่อจะได้ไม่เกิดการทำงานซ้ำซ้อนกันเช่น class สำหรับ setting ค่าต่าง ๆ การนำไปใช้งาน Singleton patter ถูกสร้างโดยเขียน class ให้ซ่อน constructor ทั้งหมดไว้จาก class อื่นๆ คือให้ constructor เป็น private จากนั้นสร้าง method มีหน้าที่สร้าง object ของ class นี้ ถ้ายังไม่ถูกสร้างและเก็บ object ตัวที่ถูกสร้างใหม่นี้ไว้ จากนั้นส่งคืน object เพียงตัวเดียวนั้นให้ทุกครั้งที่มีการร้องขอ object ของ class ข้อควรระวัง สำหรับการใช้ singleton pattern ในโปรแกรมที่ทำงานแบบ multi-threading คือหลายส่วนของโปรแกรมอาจจะพยายามเรียก method ให้สร้างอ็อบเจกต์เป็นครั้งแรกในเวลาเดียวกัน อาจทำให้มีการสร้าง object ขึ้นมาเกินหนึ่งตัวได้ ในกรณีนี้ควรป้องกันโดยอนุญาตให้เพียง 1 thread เรียก method ได้ในขณะใดขณะหนึ่ง (mutually exclusive) ตัวอย่าง code เพื่อใช้งาน singleton sealed  class  Singleton {        privat...