Thursday, July 21, 2016

Ext.NET cùng Bin- Events- Async

Asynchronous DirectEvents

(Sự kiện trực tiếp không đồng bộ)

Click vào mỗi nút thật nhanh chóng. Mỗi giá trị sẽ được trả lại sau khi đã trì hoãn với giá trị sau khi đã được cấu hình trước.

Xem ví dụ: Ví dụ cho ta thấy giá trị được hiển thị sau khi kết thúc thời gian trì hoãn của mỗi button nhé:
Màn hình ví dụ nhé, sau khi click bạn sẽ thấy nó hiển thị như sau:
Mình click từ trên xuống dưới, nhưng bạn sẽ thấy giờ xuất hiện của chúng trên màn hình khác nhau đúng không nào, dù button1 được nhấn đầu tiên nhưng hiển thị giờ cuối cùng vì bị trễ 10 giây lận mà



Giải thích code nhé các bạn:

<%@ Page Language="C#" EnableSessionState="False" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">

    // Code bắt sự kiện cho button 1
    protected void Button1_Click(object sender, DirectEventArgs e) 
    {
        //Hệ thống sẽ ngủ trong 10 giây, bạn sẽ thực hiện câu lệnh tiếp theo sao 10 giây nhé
        System.Threading.Thread.Sleep(10000);
        // Sau 10 giây label ở giao diện sẽ được gán giá trị là "Lable : DD/MM/YYYY"
        this.Label1.Text = "Label1 : " + DateTime.Now.ToLongTimeString();
    }

  // Code bắt sự kiện cho button 2 giống button 1  
  protected void Button2_Click(object sender, DirectEventArgs e)
    {
        // Hệ thống sẽ ngủ trong 1 giây
        System.Threading.Thread.Sleep(1000);
        this.Label2.Text = "Label2 : " + DateTime.Now.ToLongTimeString();
    }
    
    // Code bắt sự kiện cho button 3 giống button 1  
    protected void Button3_Click(object sender, DirectEventArgs e)
    {
        // Hệ thống sẽ ngủ trong 5 giây
        System.Threading.Thread.Sleep(5000);
        this.Label3.Text = "Label3 : " + DateTime.Now.ToLongTimeString();
    }
    // Code bắt sự kiện cho button 4 giống button 1  
    protected void Button4_Click(object sender, DirectEventArgs e)
    {
        // Hệ thống sẽ ngủ trong 1 giây
        System.Threading.Thread.Sleep(1000);
        this.Label4.Text = "Label4 : " + DateTime.Now.ToLongTimeString();
    }
</script>
 
<!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>Asynchronous DirectEvents - Ext.NET Example</title>
    <link href="../../../../resources/css/examples.css" rel="stylesheet" type="text/css" />

</head>
<body>
    <form runat="server">
        <ext:ResourceManager runat="server" />

        <h1>Asynchronous DirectEvents</h1>

        <p>Click each Button quickly in succession. Each will value will be returned after its configured delay, 
        which simulates a long running server-side task.</p>

        // Button 1 có tên hiển thị là "Submit 1 (10 sec)"
        // OnDirectClick bắt sự kiện click của button 1 và thực hiện hoàm Button1_Click trên server
        <ext:Button runat="server" Text="Submit 1 (10 sec)" OnDirectClick="Button1_Click" />

        // Button 2 tương tự button 1
        <ext:Button runat="server" Text="Submit 2 (1 sec)" OnDirectClick="Button2_Click" />

        // Button 3 tương tự button 1
<ext:Button runat="server" Text="Submit 3 (5 sec)" OnDirectClick="Button3_Click" />

        // Button 4 tương tự button 1
<ext:Button runat="server" Text="Submit 4 (1 sec)" OnDirectClick="Button4_Click" /> <ext:Label ID="Label1" runat="server" /><br /> <ext:Label ID="Label2" runat="server" /><br /> <ext:Label ID="Label3" runat="server" /><br /> <ext:Label ID="Label4" runat="server" /> </form> </body> </html>

Mình vừa giới thiệu và giải thích code cho phần Sự kiện của bài. Bạn thấy không, nó không khó như mình tưởng.

Các bạn ủng hộ mình để phần sau mình viết tốt hơn nhé!

Bin cảm ơn các bạn và xin chào, hẹn gặp lại các bạn trong những bài sau!

No comments:

Post a Comment