วันเสาร์ที่ 15 พฤศจิกายน พ.ศ. 2551

HttpModules กับ IIS 7 ทำไมไม่โหลด Mudule ละค้าบ

ปัญหาใหม่มาละคร้าบ หลังจากที่ เปลี่ยนมาใช้ Windows Vista กะเค้าบ้าง ผลก็คือ โปรแกรมเก่า ที่ทำไว้ ดันใช้ไม่ได้ เนื่องจาก Module ไม่ทำงาน ตอนเริ่มโปรแกรม เลยได้ความรู้ใหม่เลย ซึ่งก็คือ หากอยู่ในโหมด classic application pool
การใช้งาน Modules ก็จะเหมือนเดิมคือ

            
            


แต่ถ้าเป็นโหมด Default Application Pool
ก็จะกลายเป็น

 
        
        
            
            
            
            
        

(จริงๆ  ตรงนี้มีต่อนะ แต่ขอย่อละกัน...)

 



ซึ่ง เป็นการใช้ Module ของ IIS 7 ครับ
แถมท้ายด้วยว่า โปรเจ็คที่สร้างจาก Visual Studio 8 กับ Version Express นั้น ตัว dll System.Web.Extension คนละเวอร์ชั่นกันครับ ตัว Express ได้ dll ใหม่กว่าด้วยซ้ำ ผลคือ ต้องสร้างโปรเจ็คใหม่ แล้วเอาโค๊ดของเก่ามาลงอีกรอบ

การป้องกันปัญหาสำหรับ Mudule เพราะไม่รู้ว่าเซิฟที่จะเอาไปลง IIS Version ไหน ก็ใส่ไปทั้งคู่ก็ได้ครับ ไม่เป็นไร ผมลองละ - -'

วันพฤหัสบดีที่ 6 พฤศจิกายน พ.ศ. 2551

EventHandler By UserControl For Out side

เหมือนเวลาที่เราต้องการ คลิกที่ปุ่ม ใน UserControl แต่ต้องการให้ Event ที่ได้จากการคลิกที่ปุ่ม เกิดข้างนอก UserControl (ยกตัวอย่างบนฟอร์ม ที่เราเอา UserControl ไปวาง) เขียนได้ดังนี้นะคร้าบ

ใน User Control จะให้เกิด Event เมื่อคลิกที่ ปุ่ม LinkButton

public event EventHandler CustomMyEvent;

protected void LinkButton_Click(object sender, EventArgs e)
{
//Can Inser Other Code here.

CustomMyEvent(this, e);

//Can Inser Other Code here.
}

ในหน้าเพจที่ Code Behind สมมุติว่าใช้ชื่อ UserControl ว่า MyUserControl เมื่อคลิกที่
LinkButton แล้ว ให้ทำงานที่ MyCustomUserEvent

protected void Page_Load(object sender, EventArgs e)
{
MyUserControl.CustomMyEvent += new EventHandler(MyCustomUserEvent);
}

void MyCustomUserEvent(object sender, EventArgs e)
{
//Any thing can happend here.
}

เวลาไม่มาก เลยเขียนอธิบายสั้นๆ ได้ใจความแค่นี้ อยากรู้เป็นไง ต้องลองทำดูครับ มีปัญหาสงสัยถามได้นะครับ