Đếm ngược trong website ASP.NET cho nhiều dòng dữ liệu

Đếm ngược trong website ASP.NET cho nhiều dòng dữ liệu

Trong bài viết trước, WEBXAULA đã giới thiệu với các bạn cách làm đồng hồ đếm ngược trong asp.net. Có nhiều bạn phản hồi hỏi mình cách làm cho nhiều dòng dữ liệu, ở đây tôi sẽ giới thiệu đến các bạn cách hiển thị đồng hồ đếm ngược theo từng dữ liệu khác nhau. 

Đếm ngược trong website ASP.NET cho nhiều dòng dữ liệu

Bài viết liên quan: Đếm ngược trong asp.net

Đầu tiên, trong code html bạn viết như sau:

<asp:DataList ID="DS_DauGia" runat="server" >
    <ItemTemplate>
        <asp:Literal ID="lblMa" Text=<%# Eval("daugiaID") %> runat="server"></asp:Literal>
        <asp:Literal ID="lblGiay" Text=<%# Eval("hanchot") %> runat="server"></asp:Literal>
        <div id="timelabel<%# Eval("daugiaID") %>"></div>
 
    </ItemTemplate>
    </asp:DataList>
    <%=HienScript() %>
 

Ở đây tôi dùng Datalist để hiển thị dữ liệu. Bạn có thể dùng control khác tương tự và trình bày lại cho đẹp mắt.

 

Trong code C# bạn viết như sau:

 
protected void Page_Load(object sender, EventArgs e)
    {
        //seconds = (GetEndTime() - GetStartTime()).TotalSeconds;
        HienDuLieu();
    }
    private DateTime GetStartTime()
    {
        return DateTime.Now;
    }
    private DateTime GetEndTime(DateTime pNgay)
    {
        //return new DateTime(2010, 5, 06, 8, 10, 0);
        return new DateTime(pNgay.Year, pNgay.Month, pNgay.Day, pNgay.Hour, pNgay.Minute, pNgay.Second);
    }
 
    private void HienDuLieu()
    {
        ketnoiDataContext pKetNoi = new ketnoiDataContext();
        var pDauGia = from p in pKetNoi.DauGias
                      select p;
 
       
 
        DS_DauGia.DataSource = pDauGia;
        DS_DauGia.DataBind();
    }
    public string HienScript()
    {
        string pKQ = "";
        //string pSQL = "SELECT * From giatot where isHome = 1 order by giatotID desc";
        //bang pBang = new bang(pSQL);
 
        //if (pBang.Rows.Count <= 0) return "";
 
        for (int i = 0; i <= DS_DauGia.Items.Count - 1; i++)
        {
            Literal lblGiay = (Literal)DS_DauGia.Items[i].FindControl("lblGiay");
            Literal lblMa = (Literal)DS_DauGia.Items[i].FindControl("lblMa");
            string pMa = lblMa.Text;
            DateTime pNgayKetThuc = DateTime.Parse(lblGiay.Text);
 
            double seconds = (GetEndTime(pNgayKetThuc) - GetStartTime()).TotalSeconds;
 
            pKQ += "<script type=\"text/javascript\">"+
                        "var leave" + pMa + " = " + seconds + ";"+
                        "CounterTimer" + pMa + "();" +
                        "var interv=setInterval(CounterTimer" + pMa + ",1000);" +
                        "function CounterTimer" + pMa + "()" +
                        "{"+
                        "var day" + pMa + " = Math.floor(leave" + pMa + " / ( 60 * 60 * 24));" +
                        "var hour" + pMa + " = Math.floor(leave" + pMa + " / 3600) - (day" + pMa + " * 24);" +
                        "var minute" + pMa + " = Math.floor(leave" + pMa + " / 60) - (day" + pMa + " * 24 *60) - (hour" + pMa + " * 60);" +
                        "var second" + pMa + " = Math.floor(leave" + pMa + ") - (day" + pMa + " * 24 *60*60) - (hour" + pMa + " * 60 * 60) - (minute" + pMa + "*60);" +
                        "hour" + pMa + "=hour" + pMa + "<10 ? \"0\" + hour" + pMa + " : hour" + pMa + ";" +
                        "minute" + pMa + "=minute" + pMa + "<10 ? \"0\" + minute" + pMa + " : minute" + pMa + ";" +
                        "second" + pMa + "=second" + pMa + "<10 ? \"0\" + second" + pMa + " : second" + pMa + ";" +
                        "var remain" + pMa + "=day" + pMa + " + \" days   \"+hour" + pMa + " + \":\"+minute" + pMa + "+\":\"+second" + pMa + ";" +
                        "leave" + pMa + "=leave" + pMa + "-1;" +
                        "document.getElementById(\"timelabel" + pMa + "\").innerHTML=remain" + pMa + ";" +
                        "}"+
                        "</script>";
            //
 
        }
        return pKQ;
    }
 

Chúc các bạn thành công

 

Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Foxconn

Foxconn mua lại 9% cổ phần của GoPro với giá 200 triệu USD

Foxconn là một trong những công ty sản xuất linh kiện điện tử và gia công hàng đầu trên thế giới. Để mở rộng thị trường kinh doanh của mình Foxconn vừa tuyên bố đã mua lại 9% cổ phần của công ty GoPro với giá 200 triệu USD.

Sức mạnh của HTML 5 trong thiết kế web mobile

Sức mạnh của HTML 5 trong thiết kế web mobile

Công nghệ thiết kế website bằng HTML 5 thì ra đời khá lâu rồi. HTML 5 là công nghệ. Theo IBM thì

Drupal 7 – Part 2: Deliver digital faster, ít rủi ro hơn

Drupal 7 – Part 2: Deliver digital faster, ít rủi ro hơn

I showed you some of the many examples of successful sites built rapidly thanks to Drupal’s modularity.

Công ty diệt chuột T&C

 

Diet con trung