ایجاد ساعت، دقیقه و ثانیه با استفاده از 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 تشکر