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
Toplam 1 cevap
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