Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Cách tạo thời gian đếm ngược trên web, và tự động click button khi hết giờ

  1. #1
    Ngày gia nhập
    11 2011
    Bài viết
    11

    Mặc định Cách tạo thời gian đếm ngược trên web, và tự động click button khi hết giờ

    Như tiêu đề, mình đang làm bài tập web ASP.net và mắc ở đoạn này.

    mình có một hàm

    Code:
    protected void bt_Submit_Click(object sender, EventArgs e)
    {
    }


    mình muốn hiển thị một đồng hồ đếm ngược trên web (thời gian có thể thay đổi theo biến Application truyền vào). Và khi hết giờ thì tự động gọi bt_Submit_Click ra.

    Mong mọi người giúp đỡ.

    Cảm ơn mọi ng` nhiều

  2. #2
    Ngày gia nhập
    01 2010
    Bài viết
    306

    Cái này thì bạn phải dùng javascript xử lý tại client nha

    Dùng javascript hiện lên 1 cái đồng hồ, đồng thời với đó là đặt bộ đếm thời gian ( gọi hàm window.setInterval chẳng hạn ). Khi hết thời gian thì gọi sự kiện click trên button


    Còn như bạn xử lý trên Server thì chỉ có nội tại trên server biết thôi, chứ server đâu có cách nào đợi sau mấy giây lại ra lệnh cho client reload cập nhật thau đổi đc

    Edit: À quên, hình như Asp.net có tạo sẵn công cụ cho cái này. Bạn vào trong ToolBox, kéo xuống dưới đến chỗ AJAX, hình như là cái Timer thì phải ( chưa xài bao giờ, đoán mò thôi =)) )
    Đã được chỉnh sửa lần cuối bởi Sounj : 01-12-2012 lúc 11:15 PM.

  3. #3
    Ngày gia nhập
    11 2011
    Bài viết
    11

    mình cũng định xử lý ở client

    nhưng đang mắc đoạn đếm ngược

    mình sẽ thử theo cách của bạn xem sao

  4. #4
    Ngày gia nhập
    01 2010
    Bài viết
    306

    ^ làm đê, có gì bí quá thì bạn cứ up code lên đây => nếu bạn chịu khó code đầy đủ thì anh em sẽ giúp bạn khoản sửa code

  5. #5
    Ngày gia nhập
    11 2011
    Bài viết
    11

    mình chưa rõ đoạn gọi sự kiện click button lắm mình bị báo lỗi lúc gọi sự kiện



    test.aspx
    Code:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs" Inherits="SiteMaster.test" %>
    
    <!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></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
            <div>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
                        </asp:Timer>
                        <asp:Label ID="Label1" runat="server"></asp:Label>
                    </ContentTemplate>
                </asp:UpdatePanel>
            <asp:Button ID="bt_submit" runat="server" Text="Submit" onclick="bt_submit_Click" /><br />
            <asp:Label ID="lb_end" runat="server" Text="Submited" Visible="false"></asp:Label>
    
            </div>
        </form>
    </body>
    </html>


    test.aspx.cs
    Code:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    namespace SiteMaster
    {
        public partial class test : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    Session["time"] = DateTime.Now.AddSeconds(10);
                }
            }
            protected void Timer1_Tick(object sender, EventArgs e)
            {
                TimeSpan time1 = new TimeSpan();
                time1 = (DateTime)Session["time"] - DateTime.Now;
                if (time1.Seconds <= 0)
                {
                    Label1.Text = "TimeOut!";
                    //bt_submit_Click();
                }
                else
                {
                    Label1.Text = time1.Seconds.ToString();
                }
    
            }
    
            protected void bt_submit_Click(object sender, EventArgs e)
            {
                bt_submit.Visible = false;
                lb_end.Visible = true;
            }
        }
    }

  6. #6
    Ngày gia nhập
    01 2010
    Bài viết
    306

    Mặc định Cách tạo thời gian đếm ngược trên web, và tự động click button khi hết giờ

    ^ lôi cái timer vào thật đó à. Công dụng của cái này hình như là liên tục sau 1 khoảng thời gian thì lại gửi postback về server. Chậc, vụ này thì chắc là mình bày bậy mất rồi. Bạn thử xài javascript thử xem

  7. #7
    Ngày gia nhập
    11 2011
    Bài viết
    11

    mình nghĩ dùng cái này cũng đc mà, chỉ ko rõ gọi event click ra ntn nữa @@ nếu mình gọi đơn giản như bên dưới thì bị lỗi, nó bắt có tham số...

    Code:
    if (time1.Seconds <= 0)
                {
                    Label1.Text = "TimeOut!";
                    //bt_submit_Click();
                }

  8. #8
    Ngày gia nhập
    01 2010
    Bài viết
    306

    À, thực ra thì ở chỗ đó, cậu có thể gọi với tham số như thế này
    bt_submit_Click(this, e);
    Nó yêu cầu tham số thì gửi tham số cho nó, 2 tham số này mình ko xử lý thì cứ truyền bậy cho nó cũng ko sao hết

    Cái cốt yếu là bản chất của Timer là AJAX, dù cậu có gọi đc cho bt_submit_Click thì ở phía client, cậu cũng phải viết javascript riêng để reload lại trang. Hic, khó giải thích lắm, nhưng nói chung là mấy cái AJAX dựng sẵn của micrrosoft rất là phiền hà ....

  9. #9
    Ngày gia nhập
    01 2010
    Bài viết
    306

    Giữa trưa cũng chả biết làm gì, gõ đại mấy dòng , cậu xem thử thế nào
    Code:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!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 id="Head1" runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:Label ID="Label1" runat="server" Text="hic hic"></asp:Label>
            <br />
    
    
            <asp:Panel ID="Panel1" runat="server">
                <asp:Label ID="dongho" runat="server" Text=""></asp:Label>
                
                <script src="Scripts/jquery-1.7.2.js"></script>
                <script type="text/javascript">
                    var timer;
                    $(document).ready(function (e) {
                        timer = window.setInterval("HienDongHo();", 1000);
                    });
    
                    function HienDongHo() {
                        var dongho = document.getElementById("dongho");
                        var value = parseInt(dongho.innerHTML);
                        value--;
                        dongho.innerHTML = value;
                        if (value <= 0) {
                            window.clearInterval(timer);
                            document.getElementById("bt_submit").click();
                        }
                    }
                </script>
    
            </asp:Panel>
    
            <div>
                <asp:Button ID="bt_submit" runat="server" Text="Submit" onclick="bt_submit_Click" />
                <br />
            
            </div>
        </form>
    </body>
    </html>
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                dongho.Text = "4";
            }
        }
    
    
        protected void bt_submit_Click(object sender, EventArgs e)
        {
            Label1.Text = "OK !";
            Panel1.Visible = false;
            bt_submit.Enabled = false;
        }
    }
    Định ko dùng jquery, nhưng lại vướng khi gọi sự kiện onload, phiền quá nên lại mần lại jquery có nó khỏe
    jquery down ở đây nhé http://jquery.com/

  10. #10
    Ngày gia nhập
    11 2011
    Bài viết
    11

    ok, tks bạn vì đoạn code

    chắc phải tìm hiểu thêm về mấy cái này thôi

Các đề tài tương tự

  1. click button form2 thì button form1 cũng đc click
    Gửi bởi randylong trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 05-05-2013, 01:08 PM
  2. Tự động click vào button theo thời gian với lập trình C#!
    Gửi bởi binhcg trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 30
    Bài viết cuối: 31-01-2013, 10:40 AM
  3. Làm sao click được button trên web form bằng ứng dụng c#?
    Gửi bởi dlover trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 03-02-2012, 10:49 AM
  4. Làm sao bắt sự kiện click vào button trên Ribbon control?
    Gửi bởi elkidvnn1 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 14-01-2012, 09:08 PM
  5. Tạo button trên datagridview để xóa dòng bằng click vào button?
    Gửi bởi phuocit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 14-11-2011, 09:30 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn