films-araigun Rotating Header Image

filter เอาแต่ตัวเลขเท่านั้น

filter เอาแต่ตัวเลขเท่านั้น ถ้ามีตัวหนังโผล่มาหล่ะก็ ฝันไปเถอะ แกอย่าอยู่เลย เอิ๊กๆๆ

private string filternumber(string mobile)
{
if( mobile == string.Empty)
return mobile;

string output = string.Empty;
foreach (char c in mobile.ToCharArray())
{
if (char.IsDigit(c))
output += c.ToString();
}

return output;
}

Invoke Server-Side method from Client-Side using jQuery

บางครั้งที่เราต้องการให้ Html Control เรียก method ที่ฝั่ง server เราอาจจะเลือกที่จะใช้ json เข้ามาช่วย(จริง ๆ มันเป็นแค่รูปแบบของข้อมูลที่ประกอบด้วย [, }, : เพื่อเปลี่ยนให้เป็นข้อมูลที่ computer สามารถอ่านได้) โดยพระเอกของเราก็คือ jQuery นั้นเอง ตัวผมเองก็พึ่งที่จะหัดที่จะใช้มัน (ไม่รู้ว่าช้าไปไหม) พนวกกับมี project ที่ต้องทำงานในลักษณะนี้พอดีเลยได้ลองเขียนออกมาได้อย่างที่เห็น

หลัก ๆ ที่จะมีคือ

Server-Side method จะต้องเป็น static และ มี attribute ของ method เป็น WebMethod

data ของ $.ajax คือชื่อของ parameter ของ method ฝั่ง Server-Side (ในที่นี้ผมตั้งว่า e)

test-ajax.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test-ajax.aspx.cs" Inherits="backend_test_ajax" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>Ajax Method Invoker Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript" language="javascript">

function doSomethingFromJavaScript(param)
{

$.ajax(
{

type: "POST",
dataType: "json",
url: "test-ajax.aspx/AjaxMethod",
data: '{e: "' + param + '"}',
contentType: "application/json; charset=utf-8",
success: function (messageFromServer)
{

alert(messageFromServer.toString());

}

});

}

</script>

</head>
<body>

<a href="#" onclick="doSomethingFromJavaScript('kob')">Test Ajax Method</a>

</body>
</html>

test-ajax.aspx.cs

using System;
using System.Web.Services;

public partial class backend_test_ajax : System.Web.UI.Page
{

[WebMethod]
public static string AjaxMethod(string e)
{

return “Client parameter is : ” + e;

}

}

via p’ kob thanks p’ball

ASP.NET UploadPanel กับ FileUpload

FileUpload คร๊า… ไม่ว่าจะเป็น input ของ html หรือว่า .net ก็ตามก็เจอปัญหาเหมือนกันเวลาที่มันอยู่ใน Update Panel เรื่องมันก็เกิดตอนที่กด Submit From หน่ะซิน๊า  Request.Files มันเกิดไม่มีข้อมูลซะงั้นงี้เราจะทำยังไงกันดีละเนี๊ย ! ข้อมูลของไฟล์ที่เราจะอัพโหลดมันหายไปไหนกัน (FileUpload.HasFile = false) มีพี่เค้าบอกว่าใน web เค้ามีวิธีแก้ไขกันมากมายเลยน๊า แต่เค้าไปเจอวิธีที่สะดวกที่สุดก็คือ ให้ Register Control ที่จะเป็น Trigger ในการ save ข้อมูลลงใน Page Load ดังนี้

C#

ScriptManager.GetCurrent(this).RegisterPostBackControl(btnSave);

vb

ScriptManager.GetCurrent(Me).RegisterPostBackControl(upload)

ขอบคุณพี่กบที่แนะนำครับ

If Condition in C# by p’kob

มีเรื่องน่าสนใจของif condition c# มาฝากกัน เป็น note ที่พี่กบเขียนเอาไว้กั๊บ

string iAm;

if (otherPerson == null)
iAm= “KOB”;

else
iAm= otherPerson ;

ทุกคนคงรู้ว่าสามารถเขียนแทนได้ด้วย…

string iAm= (otherPerson == null) ? “KOB” : otherPerson ;

แต่จะมีสักกี่คนรู้ว่าเขียนแบบนี้ก็ได้…

string iAm= otherPerson ?? “KOB” ;

เอาเม้นมาฝากกันด้วย อ่านแล้วอาจจะทำให้เข้าใจขึ้นนะ

4-6-2553 15-45-24

HTML Designer Tip by p’kob

ข้อควรระวังในขั้นตอนการเปลี่ยนจาก Design เป็น html

เนื่องจากลูกค้า เวลา Test จะใช้ ทุก Browser (IE, FF, Chrome) ข้อควรระวังคือ

1. ใน CSS ไม่ควรใช้

-webkit-…….

-moz…….

เพราะมันจะทำงานได้เฉพาะ FF กับ Chrome เท่านั้น

ซึ่งตอนนี้ตัว Render Web จะมีหลัก ๆ 3 อันคือ

1. Webkit ใช้กับ Chrome, Safari

2. Gecko สำหรับ FF

3. IE Render (ขึ้นอยู่กับแต่ละ Version)

ซึ่งถ้าจะใช้ควรหาอันที่มันรองรับทั้ง 3 Render Engine เช่น การลงสีแบบงไล่สี สามารถทำให้แสดงผลได้ทั้ง 3 Browser (IE6 ใช้ ไม่ได้อยู่ดี)
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=’#fe7575′, endColorstr=’#ffb0b0′); /* for IE */

background: -webkit-gradient(linear, left top, left bottom, from(#fe7575), to(#ffb0b0)); /* for webkit browsers */

background: -moz-linear-gradient(top,  #fe7575,  #ffb0b0); /* for firefox 3.6+ */

2. ไม่ควรใช้ Feature ของ CSS version 3 เช่น text-shadow เพราะ IE ไม่รองรับ CSS3 จะทำให้การแสดงผลต่างจาก FireFox, Chrome และส่งผลให้ลูกค้าอาจจะถาม

Blog ที่น่าสนใจ   —> 30 HTML Best Practices for Beginners

credit:  p’kob @ AJ

How to use HTML Meta Tag

Metadata Elements หรือ Meta Tag คือ ส่วนของซอร์สโค๊ดที่อยู่ใน Head (ส่วนหัว) ของเอกสาร HTML โดยปกติเมื่อเราเปิดหน้าเว็บไซต์หนึ่ง ๆ ขึ้นมา ส่วนของ Head จะถูกประมวลผลก่อน ดังนั้น Meta Tag จึงเป็นส่วนที่บอกคุณลักษณะของเว็บนั้น ๆ ว่าเป็นเว็บเกี่ยวกับอะไร แสดงผลด้วยภาษาอะไร ใครเป็นผู้เขียน มีคำค้นที่ใช้ว่าอะไร เป็นต้น

ตัวอย่าง Meta Tag ในไฟล์ html เป็นดังนี้

<head>
<title>How to use HTML Meta Tags at Truehits.net</title>
<meta name=”keywords” content=”Thailand Directory, Web Statistics ,donate , สนับสนุน ,ทรูฮิต, สถิติ, ไดเร็คทอรี่, ไทย, อันดับเว็บ ,ประชาสัมพันธ์”>
<meta name=”description” content=”Thailand Directory and Advance Web Statistics, Web Monitor SMS Alert”>
</head>

ซึ่ง Robot ของ Search Engine จะเก็บข้อมูลเหล่านี้ไปใช้ในการประมวลผลจัดเก็บเว็บไซต์ เรามาทำความรู้จักกับ Meta Element แต่ละ Tags กันดีกว่า
1. Tag ที่ google ให้ความสำคัญมากที่สุด คือ <title></title> ข้อความใน Title จะปรากฏอยู่ที่ reverse bar ในบราวเซอร์

  • ข้อความใน Title จะปรากฏอยู่ที่ “Favorites” ในบราวเซอร์
  • ต้องการให้มีโลโก้แสดง ที่ช่อง Address Bar เวลาพิมพ์ url
    ไอคอนเล็ก ๆ นั้นเรียกว่า “favicon” อ่านว่า แฟบ ไอคอน โดยให้สร้างไฟล์ ชื่อ “favicon.ico” (หรือไฟล์ที่มีนามสกุล .ico) และให้ใส่ไฟล์ไว้ที่ document root
    document root หรือ Root คือ Path ที่ใช้เก็บไฟล์ ที่เป็น Index เช่น index.html , index.php เป็นต้นไฟล์ที่มีนามสกุล .ico ได้มาจาก ไฟล์ .gif หรือ .jpg ก็ได้แล้วทำการ เปลี่ยนชื่อไฟล์เป็น .ico
    หลังจากเข้าไปที่เว็บไซต์ นั้น ให้สังเกตที่ช่อง Address bar จะเห็นมีโลโก้แสดงขึ้นมาเองอัตโนมัติ

ex. <title>SEO – Meta Tags</title>

2.Tag Description

  • เวลาค้นหาจาก search engine ใน google จะนำข้อความใน tag นี้ไปแสดงผลในการค้นหา

ex. <meta name=”description” content=”Thailand Search Engine Optimization Blog” />

3. Tag Keyword

  • เลือกคำ ที่เกียวข้องกับเว็บไซต์ เพื่อให้ google ใช้ทำเป็น index

ex. <meta name=”keywords” content=”seo,seo thai,seo blog,seo tools” />

4. Meta Robots Tag

<meta name=”robots” content=”index,follow”>
เทียบได้กับ <meta name=”robots” content=”all”>
แสดงว่าให้ robot ทำการ index หน้าเพจ และให้ follow ลิงค์ให้หน้าเพจนั้น
ในปัจจุบัน ถ้าไม่ใส่ Tag นี้ ก็หมายถึง default ให้เป็น <meta name=”robots” content=”all”> อยู่แล้ว

ถ้าไม่ต้องการให้ Robot ทำการ index หน้าเพจ และให้ follow ลิงค์ให้หน้าเพจนั้น
ใส่ Tag เป็น <meta name=”robots” content=”noindex,nofollow”>

5. Tag Language

  • ใช้สำหรับระบุว่า หน้าเว็บไซต์นั้น ๆ มีเนื้อหาเป็นภาษาอะไร เช่น

ex. <meta http-equiv=”content-language” content=”th” />

6. Tag Content Type

  • ใช้สำหรับระบุว่า หน้าเว็บไซต์นั้น ๆ สามารถแสดงผลได้ถูกต้องด้วยชุดตัวอักษรแบบใด และเป็นเอกสารประเภทอะไร

ex. <meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />

7. Revisit-After

  • ใช้สำหรับบอกกับ Robot ของ Search Engine ว่า ให้มาเก็บข้อมูลอีกครั้งในอีกกี่วันข้างหน้า

ex. <meta name=”revisit-after” content=”7 days” />

Search engine กับการใช้ Frame

  • ถ้าคุณจำเป็นต้องใช้ <frameset></frameset>

ทำให้ search engine รู้จักเว็บคุณได้ โดย ใส่ข้อความต่าง ๆ ใน tag <noframes></noframes>
เช่น

<noframes><body>
web site description
<a href=”contents.html”>Contents</a>
</body></noframes>

การใส่ <a href=”"></a> ทำให้ search engine เข้าไปดูหน้าเว็บเพจนั้นต่อ

Search engine กับรูปภาพ

  • ทำให้รู้จักรูปภาพได้อย่างไร เพียงแค่ ใช้ alt เพื่ออธิบายรูปภาพ

เช่น <img src=”test.gif” alt=”show description”>

cradit : Thai Search Engine Optimization Blog

popup message กับ scriptmanager ajax

ใช้บ่อยเหลือเกินแต่ลืมทุกทีเลย จนได้พี่ยุทธมาช่วยไว้ ที่จริงการเรียก js ใน .net มีหลายวิธีไม่ว่าจะเป็น Response.Write(js) หรือจะใช้ registerStartupScript(type,id, js, true) แล้วก็ยังมีวิธีอื่นๆอีก เอาไว้คราวหน้าจะเอามาเสนอก็แล้วกันนะ แต่เมื่อพวกนี้มาเจอกับ scriptmanager ของ ajax แล้วก็เจอปัญหาขึ้นมาซะงั้น js มักจะไม่ทำงาน หว่าอย่างนี้ก็แย่เลยซินะ อิอิ แต่ไม่ต้องห่วงมีวิธีมาช่วยเราแล้ว ตามนี้เลยนะ อ่ะอันนี้ขอให้เครดิตพี่ยุทธที่ใจดีให้คำตอบนะก๊าบ ขอบคุณกั๊บ

string   js  =  “”;

js = “alert(’ข้อความ’);”;

if(ScriptManager.GetCurrent(base.Page).IsInAsyncPostBack)

{

ScriptManager.RegisterStartupScript(this, this.GetType(),”Rating_Scritp_”+this.ClientId.ToString(),js,true);

}else{

this.Page.ClientScript.RegisterStartupScript(this.GetType(),this.ClientId,js,true);

}

.NET Contains ()

คุณMethod Contains () มีความสามารถค้นหาว่าข้อความมีอยู่จริงหรือไม่มีค่าเป็น Trueหรือ False

เราสามารถนำไปประยุทต์ใช้ได้กับการ
searchหรือการตรวจสอบคำซ้ำ โดยไม่ได้ queryจากฐานข้อมูล ไม่ว่าจะใช้กับ String หรือ Arrayหรือว่า ArrayListเอาไปช่วยในการค้นหาคำ เอาไปใช้ในการสร้างเงื่อนไขต่าง มันก็ชั่งง่ายได้ไปหมด อิอิชักอยากจะรู้แล้วซิว่ามันทำอะไรได้บ้าง

Continue reading →

Amazing IndexOf() Method

Amazing IndexOf() Method

คุณmethod IndexOf ช่างน่าประทับจริงๆ มีความสามารถในการค้นหาตำแหน่งของสิ่งที่เราต้องการได้ อิอิเราสามารถนำไปประยุทต์ใช้ได้หลายๆงานเลย ไม่ว่าจะใช้กับ String หรือ Array หรือว่า ArrayListเอาไปช่วยในการค้นหาคำ เอาไปใช้ในการสร้างเงื่อนไขต่าง มันก็ชั่งง่ายได้ไปหมด อิอิชักอยากจะรู้แล้วซิว่ามันทำอะไรได้บ้าง

Continue reading →

vb VS c# :หาจำนวนวันที่ผ่านไปแล้วว่ามีกี่วันกี่เดือนกี่ปี

อันนี้ของติ๊กก๊าบ เป็นcode vb.net

หารับค่าวันเวลามาเป็นสตริง  แล้วหาว่าผ่านมาแล้วเป็นเวลาเท่าไหร่ กี่วัน กี่เดือน กี่ปี

ตัวอย่างเวลาที่รับมาต้องมีformat (yyyy/mm/dd)

ได้เวลามาแล้วก็แปลงให้เป็นชนิดข้อมูลแบบวันที่ แล้วนำมาลบกับเวลาปัจจุบัน โดยใช้ DateInterval.Day เพื่อลบให้ได้เป็นจำนวนวันออกมา

  Protected Function FindTime(ByVal time As Date) As String
    Dim tmp As String = String.Empty
        Dim today As Date = Date.Now
        'Dim today As Date = Date.Parse("2553/01/06")
    Dim result As Integer  = Convert.ToInt32( DateDiff(DateInterval.Day,time.Date,today.Date))
    If Convert.ToInt32(result / 356) > 0  Then
        tmp = Convert.ToInt32(result / 356) &" year" & IIf(Convert.ToInt32(result / 356) > 1,"s","") & " ago"
        ElseIf Convert.ToInt32(result / 30) > 0 Then
               tmp = Convert.ToInt32(result / 30) &" monuth" & IIf(Convert.ToInt32(result / 30)>1,"s","") & " ago"
        ElseIf today.Date = time.Date
                tmp = "today"
        ElseIf result <> 0 Then
            tmp = today.Day - time.Day & " day" & IIf(today.Day - time.Day > 1, "s", "") & " ago"
    End If

    Return tmp
    End Function

อันนี้ของพี่กบ ละเอียดก่าเยอะก๊าบ เป็น c# รับค่าเป็น datetime แล้วรีเทิร์นค่าเป็นสตริง บอกได้ในระดับวินาทีก๊าบ เอิ๊กเอิ๊กเอิ๊ก ละเอียดดีก๊าบ

public static string ToTimeSinceString(DateTime value)
{
    const int SECOND = 1;
    const int MINUTE = 60 * SECOND;
    const int HOUR = 60 * MINUTE;
    const int DAY = 24 * HOUR;
    const int MONTH = 30 * DAY;

    TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - value.Ticks);
    double seconds = ts.TotalSeconds; // เลือกเวลาทั้งหมดที่ลบได้มาเป็นวินาทีเ พื่อไปคำนวณหาว่าผ่านมาเท่าไหร่แล้ว นับตั้งแต่วินาทีเป็นต้นไป

    if (seconds < 1 * MINUTE)
        return ts.Seconds == 1 ? "one second ago" : ts.Seconds + " seconds ago";

    if (seconds < 60 * MINUTE)
        return ts.Minutes <= 1 ? "one minute ago" : ts.Days + " minutes ago";

    if (seconds < 120 * MINUTE)
        return "an hour ago";

    if (seconds < 24 * HOUR)
        return ts.Hours <= 1 ? "one hour ago" : ts.Days + " hours ago";

    if (seconds < 48 * HOUR)
        return "yesterday";

    if (seconds < 30 * DAY)
        if (ts.Days >= 7)
        {
        double days = Math.Ceiling((double)ts.Days / 7);
        return days <= 1 ? "one week ago" : days + " weeks ago";
        }
        else
        {
        return ts.Days <= 1 ? "one day ago" : ts.Days + " days ago";
        } // end
    }

    if (seconds < 12 * MONTH)
    {
    int months = Convert.ToInt32(Math.Floor((double)ts.Days / 30));
    return months <= 1 ? "one month ago" : months + " months ago";
    } // end

    int years = Convert.ToInt32(Math.Floor((double)ts.Days / 365));
    return years <= 1 ? "one year ago" : years + " years ago";

} // end

เพื่อนสามารถเลือกเอาไปปรับใช้กันได้นะก๊าบ^^