0
Asp.net web form ve Calendar kontrolü kullanarak, veritabanı kullanan etkinlik takvimi nasıl yapılır?
Basit asp.net web form etkinlik takvimi örneği
0
Asp.net web form ve Calendar kontrolü kullanarak, veritabanı kullanan etkinlik takvimi nasıl yapılır?
Aşağıda temel asp.net, ado.net bileşenleri kullanılarak yapılan bir etkinlik takvimine örnek bulabilirsiniz. Etkinlikler sql veritabanında saklanmakta.
takvim.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="takvim.aspx.cs" Inherits="WebApplication10.takvim" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="StyleSheet1.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:Calendar ID="Calendar1" runat="server" OnDayRender="Calendar1_DayRender" OnVisibleMonthChanged="Calendar1_VisibleMonthChanged"></asp:Calendar>
</form>
</body>
</html>
takvim.aspx.cs
using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace WebApplication10
{
public partial class takvim : System.Web.UI.Page
{
string connectionString = "server=.\\sqlexpress; database=deneme; Integrated security=SSPI";
int seciliAy = 1;
List<Etkinlik> etkinlikler = new List<Etkinlik>();
protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
SqlConnection con = new SqlConnection(connectionString);
seciliAy = Calendar1.SelectedDate.Month;
DateTime seciliTarih = new DateTime(Calendar1.VisibleDate.Year, Calendar1.VisibleDate.Month, 1);
DateTime sonGun = seciliTarih.AddMonths(1).AddDays(-1);
SqlCommand komut = new SqlCommand("Select Olay, Tarih from Etkinlik Where Tarih Between @ptarih AND @psonGun", con);
SqlDataReader rdr;
komut.Parameters.AddWithValue("@ptarih", seciliTarih);
komut.Parameters.AddWithValue("@psonGun", sonGun);
con.Open();
rdr = komut.ExecuteReader();
while (rdr.Read())
{
etkinlikler.Add(new Etkinlik { Olay = (string)rdr[0], Tarih = (DateTime)rdr[1] });
}
con.Close();
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.IsOtherMonth)
{
e.Cell.Controls.Clear();
}
else
{
foreach (var et in etkinlikler)
{
if (e.Day.Date == et.Tarih)
{
Label lbl = new Label { Text = "<br/>" + et.Olay, CssClass = "etkinlik" };
e.Cell.Controls.Add(lbl);
}
}
}
}
}
public class Etkinlik
{
public DateTime Tarih { get; set; }
public string Olay { get; set; }
}
}
Sql
CREATE TABLE [dbo].[Etkinlik](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Olay] [nvarchar](50) NULL,
[Tarih] [date] NULL,
CONSTRAINT [PK_Etkinlik] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol