ایجاد ساعت، دقیقه و ثانیه با استفاده از DropDownList در ASP.NET
شنبه 23 آبان 1394در این مقاله می خواهیم نشان دهیم که چگونه می توان زمان را به صورت پویا و بهینه در کامپوننت DropDownList ایجاد کرد، که زمان شامل ساعت، دقیقه و ثانیه می باشد. این نمونه برنامه هم در #C و هم در VB قابل استفاده است.
برخی اوقات در پروژه ها نیاز داریم که ساعت، دقیقه و ثانیه را از 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 خروجی به صورت زیر نشان داده می شود:

- ASP.net
- 2k بازدید
- 1 تشکر