บทความ

กำลังแสดงโพสต์จาก เมษายน, 2011

Convert float to int

การแปลงค่าจาก float เป็น int ถ้าเราใช้ function int.Parse() จะใช้ overhead สูงเพราะ parameter ที่รับเข้าไปจะต้องเป็น string ตัวอย่างเช่น int.Parse(floatValue.ToString()); มันคือการเอา float -> string -> int ซึงเราไม่ต้องการ เราต้องการ float -> int มีอีกทางเลือกคือใช้ Convert.ToInt32() แต่การเรียกใช้ method นี้จะเป็นการ เรียกใช้ method ของ CLR ของ .net ซึ่งผู้ที่เขียน C# จะดูว่ามันไม่ค่อย native C# ซะเท่าไร่ เลยขอใช้วิธีการ boxing ธรรมดานี่แหละ โดยใช่ function ปัดทศนิยมเข้ามาช่วย ดูแล้วมันเข้าใจง่ายดี (คราวหน้าจะมาวัด Performance กัน) float  floatValue = 15.2F         int  intValue = ( int )Math.Round(floatValue)  // ปัดขึ้น           // หรือ       int  intValue = ( int )Math.Floor(floatValue)  // ปัดลง   

Replacement style="clear:both"

เราสามารถใช้ overflow:auto ใน div style attribute แทนการเพิ่ม <div style="clear="both></div> < div >          < div >             ...  แบบที่ 1      </ div >          < div >             ...  แบบที่ 1       </ div >          < div   style = "clear:both" > </ div >     </ div >            < div   style = "overflow:auto " >          < div >             ...  แบบที่ 2      </ div >          < div > ...

Introduction to MVC

ASP.NET MVC ก็คือสูงสุดคืนสู่สามัญ... ลองมองดู asp version แรก ๆ ซิ ไม่มีอะไรเลย แม้กระทั้ง control ซักตัว basic สุด ๆ อยากแสดงอะไรก็ <% =.. %> แต่พอ .net ออก ASP.NET ก็เริ่มมี DataGrid  หลัง ๆ มา  .NET 2.0 ออกมา ก็มี ASP.NET 2.0 ก็มี Control เพิ่มขึ้นมากมาย FormView, GridView, LoginForm ect.. เพื่อเป็นการอำนวยความสะดวกให้กับ developer ทั้งหลาย  แต่มันไม่ตอบ โจทย์หลาย ๆ อย่าง เพราะถ้าทำอย่างนี้ต่อไป ก็จะมี Control เพิ่มขึ้นมาเรื่อย ๆ ใน .net 4 5 6 ซึ่งจริง ๆ แล้วเราก็ไม่ได้ใช้มันซักเท่าไหร่ เพราะบางอันเราก็ใช้ไม่เป็น หรือไม่มีความจำเป็นต้องใช้ ตั้งแต่ .NET 3 จึงหยิบเอา MVC มาเป็นตัวชูโรง อ้างข้อความจากบล๊อกของ Scott Hanselman In a recent MVC design meeting someone said something like "we'll need a Repeater control" and a powerful and very technical boss-type said:     "We've got a repeater control, it's called a foreach loop."  แปลได้ความว่า ในการประชุมการออกแบบ (ASP.NET) MVC ไม่นานมานี้ มีใครบางคนเสนอว่า "เราควรมี Repeater contro...

Change Cursor in JavaScript

เราสามารถเปลี่ยน Cursor ในแต่ละส่วนของ html element ได้โดย เปลี่ยน property ของ document.body.style.cursor < form   onsubmit = "document.body.style.cursor='wait'" > ... </ form >    โดย cursor ทั้งหมดที่มีให้ใช้ก็คือ.. auto crosshair default pointer (hand in IE 5.x) help move text wait e-resize, w-resize, n-resize, s-resize, ne-resize, nw-resize, se-resize, sw-resize โดย value ทั้งหมดสามารถที่จะ assign ให้กับ onmouseover / onmouseout event ได้ เช่น.. < img   ... = ""   onmouseover = "this.style.cursor='crosshair';"   src = ".."   />   

Time to Since Function เหมือนกับ Facebook ด้วย C#

เอาไว้แสดงค่าจาก CreatedDate หรือ UpdatedDate เพื่อบอกว่า Update ผ่านมาแล้วเป็นเวลาเท่าไร่ เหมือนกับ Facebook  using  System;   using  System.Collections.Generic;   using  System.Text;      namespace  KOOOOB   {        public   static   class  TimeToSince       {            public   static   string  ToTimeSinceString(DateTime value)           {                const   int  SECOND = 1;                const   int  MINUTE = 60 * SECOND;              ...

Get QueryString from JavaScript

สร้าง Function ต่อไปนี้... function   GetUrlVars () {        var  vars = [], hash;         var  hashes = window.location.href.slice(window.location.href.indexOf( '?' ) + 1).split( '&' );         for  ( var  i = 0; i < hashes.length; i++) {             hash = hashes[i].split( '=' );             vars.push(hash[0]);             vars[hash[0]] = hash[1];        }         return  vars;   }   เวลาเรียกใช้ก็ส่ง Query String Name ที่อยากได้เข้าไป (ในที่นี้คือ "P") GetUrlVars()[ "P" ]   การนำมาใช้งานจริงต้องมีการ validate นิดหน่อย.. if  ( GetUrlVar...

LINQ Notes

Generate New ID var ctx =  new  MyDataContext();   var maxId = ctx.Customers.Count() == 0 ? 1 : ctx.Customers.Select(c => c.Id).Max() + 1;