ایجاد ساعت، دقیقه و ثانیه با استفاده از DropDownList در ASP.NET

شنبه 23 آبان 1394

در این مقاله می خواهیم نشان دهیم که چگونه می توان زمان را به صورت پویا و بهینه در کامپوننت DropDownList ایجاد کرد، که زمان شامل ساعت، دقیقه و ثانیه می باشد. این نمونه برنامه هم در #C و هم در VB قابل استفاده است.

ایجاد ساعت، دقیقه و ثانیه با استفاده از DropDownList در ASP.NET

برخی اوقات در پروژه ها نیاز داریم که ساعت، دقیقه و ثانیه را از dropdownlist پر کنیم.

روش های متعددی برای انجام این کار موجود است، اما اغلب پیچیده و نا مفهوم هستند و علاوه بر این که خوانایی پایینی دارند، پردازش بیشتری هم از CPU خواهند گرفت. در این مقاله یک روش بهینه برای انجام این کار در #C ارائه شده است.

همانطور که می دانید برای پر کردن ساعت اعداد باید از 0 تا 23، برای پر کردن دقیقه از 0 تا 60 و برای ثانیه نیز از 0 تا 60 باشند. بنابراین می توانیم از طریق تنها یک حلقه for با شمارنده 0 تا 59 و یک if این روش را پیاده سازی کنیم.

برای شروع ابتدا یک web form ایجاد کرده و صفحه HTML آن را به صورت زیر طراحی می کنیم:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Hours_Minutes_Seconds.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
 <body dir="rtl">
    <form id="form1" runat="server">
        <div>
            <br />
            <br />
            <br />

            <a href="http://www.barnamenevisan.org"><h2>مرجع تخصصی برنامه نویسان</h2></a>
            <br />
            <fieldset style="width: 240px; height: 360px;">
                HH:
                <asp:DropDownList ID="ddlHours" runat="server" />
                MM:
                <asp:DropDownList ID="ddlMinutes" runat="server" />
                SS:
                <asp:DropDownList ID="ddlSeconds" runat="server" />
            </fieldset>
        </div>
    </form>
</body>
</html>

 در کد بالا سه DropDownList در نظر گرفتیم که در برگیرنده ساعت، دقیقه و ثانیه خواهند بود.

حالا برای ادامه کار Code Behind این صفحه را باید بنویسیم که به صورت زیر می باشد:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Hours_Minutes_Seconds
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindTime();
            }
        }

        private void BindTime()
        {
            List<string> hours = new List<string>();
            List<string> minutes = new List<string>();
            List<string> seconds = new List<string>();

            for (int i = 0; i <= 59; i++)
            {
                if (i < 24)
                {
                    hours.Add(i.ToString("00"));
                }
                minutes.Add(i.ToString("00"));
                seconds.Add(i.ToString("00"));
            }
            ddlHours.DataSource = hours;
            ddlHours.DataBind();
            ddlMinutes.DataSource = minutes;
            ddlMinutes.DataBind();
            ddlSeconds.DataSource = seconds;
            ddlSeconds.DataBind();
        }


    }
}

حالا برنامه کامل است و با فشردن کلید F5 خروجی به صورت زیر نشان داده می شود:

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید