Hasan Akpürüm
Kıdemli Yazılım Danışmanı
Makele Detayı

Asp.Net Etkinlik Takvimi Yapımı 2

18.7.2010 10:34:45
Merhaba arkadaşlar çoğu kişinin sıkıntısı olan etkinlik takviminin yeni versiyonunu paylaşmak istedim. Etkinlik takvimi 1 de gayet sade ve dizayn yoktu ve etkinlik bilgileri cs tarafından takvimdeki mouse event lerine basılıyor ve orada javascript ile div'de gösteriliyordu.Etkinlik takvimi 2 nin farkı ise jquery kütüphanesi ile td title ına basılıyor.Daha fazla açıklama yapmaya gerek duymuyorum çünkü kodlarda yeterince not düştüm eğer sıkıntınız olursa mail adresi ile ulaşabilirsiniz. Hi friends I wanted to share a new version of calendar events that most people in distress. There was also a very simple and designed a calendar of events and event calendar information by cs div with javascript mouse event gösteriliyordu.Etkinlik tion is printed, and there is difference of schedule 2 of the jQuery library, because I do not need to make further clarification td basılıyor.Daha per alt codes Ringtones can be reached by e-mail address if you've enough note. Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>















Default.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
ClsData Data = new ClsData();
DateTime[] dates;
ClsData clsData;
DataTable dt;
DataList dl = new DataList();
protected void Page_Load(object sender, EventArgs e)
{
TakvimLoad();
}
#region takvimload
private void TakvimLoad()
{
if (!IsPostBack)
{
Calendar1.Attributes.Add("class", "labelLogin");
Calendar1.Attributes.Add("title", "");
clsData = new ClsData();
dt = clsData.NotesDate();
Session.Add("dtdata", dt);
}
dt = Session["dtdata"] as DataTable;
dates = new DateTime[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
dates[i] = Convert.ToDateTime(dt.Rows[i][1].ToString());
}
}
#endregion
#region Calendar1_DayRender
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
TakvimAyar(e);
}
#endregion
#region TakvimAyar
private void TakvimAyar(DayRenderEventArgs e)
{
for (int i = 0; i <= dates.GetUpperBound(0); i++)
{
/* Diziye eklenen tarih formatı saatli ve dakikalı olduğu için
* takvim karşılaştırmaları string ile short date e çevirip yapmak gerekiyor.
* Yoksa saatli girilen takvim olaylarını gün ile eşleştirip göstermiyor.
*/
if (e.Day.Date.ToShortDateString() == dates[i].ToShortDateString())
{
e.Day.IsSelectable = true;
e.Cell.BackColor = System.Drawing.Color.FromName("#f79646");
e.Cell.ForeColor = System.Drawing.Color.White;
e.Cell.CssClass = "qtip";
//Takvim hücresindeki geçerli tarihi bir değişken alıp, SQL tarih formatına çeviriyoruz
//SQL sorgusunda bu tarihteki olayları listeliyoruz
string sqlTarih = String.Format("{0:yyyy-MM-dd}", e.Day.Date);
string sorgu = "Select * from ETKINLIK Where Tarih like '%" + sqlTarih + "%'";
SqlConnection baglan = new SqlConnection(Data.connetionstring);
baglan.Open();
SqlCommand komut = new SqlCommand(sorgu, baglan);
SqlDataReader oku;
oku = komut.ExecuteReader();
string takvimOlay = "";
while (oku.Read())
{
takvimOlay += @"
"; takvimOlay += " Etkinlik: " + oku["Etkinlik"].ToString(); takvimOlay += " Tarih: " + oku["Tarih"].ToString().Substring(0, 10); takvimOlay += " Saat: " + oku["Saat"].ToString().Substring(0, 5); //takvimOlay += " Yer: " + oku["Yer"].ToString(); takvimOlay += "
"; takvimOlay += "
"; } e.Cell.Attributes.Add("title", takvimOlay); baglan.Close(); oku.Dispose(); } } //burada sayfamiz olusturulurken takvim gününüe ait etkinlik varsa o günü isaretledim } #endregion }
Sade Görünüm İçin Default2.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

















Default2.cs

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

public partial class Default2 : System.Web.UI.Page
{
ClsData Data = new ClsData();
DateTime[] dates;
ClsData clsData;
DataTable dt;
DataList dl = new DataList();
protected void Page_Load(object sender, EventArgs e)
{
TakvimLoad();
}
#region takvimload
private void TakvimLoad()
{
if (!IsPostBack)
{
Calendar1.Attributes.Add("class", "labelLogin");
Calendar1.Attributes.Add("title", "");
clsData = new ClsData();
dt = clsData.NotesDate();
Session.Add("dtdata", dt);
}
dt = Session["dtdata"] as DataTable;
dates = new DateTime[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
dates[i] = Convert.ToDateTime(dt.Rows[i][1].ToString());
}
}
#endregion

#region Calendar1_DayRender
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
TakvimAyar(e);
}
#endregion

#region TakvimAyar
private void TakvimAyar(DayRenderEventArgs e)
{


for (int i = 0; i <= dates.GetUpperBound(0); i++)
{
/* Diziye eklenen tarih formatı saatli ve dakikalı olduğu için
* takvim karşılaştırmaları string ile short date e çevirip yapmak gerekiyor.
* Yoksa saatli girilen takvim olaylarını gün ile eşleştirip göstermiyor.
*/
if (e.Day.Date.ToShortDateString() == dates[i].ToShortDateString())
{

e.Day.IsSelectable = true;
e.Cell.BackColor = System.Drawing.Color.FromName("#f79646");
e.Cell.ForeColor = System.Drawing.Color.White;
e.Cell.CssClass = "qtip";

//Takvim hücresindeki geçerli tarihi bir değişken alıp, SQL tarih formatına çeviriyoruz
//SQL sorgusunda bu tarihteki olayları listeliyoruz
string sqlTarih = String.Format("{0:yyyy-MM-dd}", e.Day.Date);
string sorgu = "Select * from ETKINLIK Where Tarih like '%" + sqlTarih + "%'";

SqlConnection baglan = new SqlConnection(Data.connetionstring);
baglan.Open();
SqlCommand komut = new SqlCommand(sorgu, baglan);
SqlDataReader oku;
oku = komut.ExecuteReader();
string takvimOlay = "";

while (oku.Read())
{
takvimOlay += @"
"; takvimOlay += " Etkinlik: " + oku["Etkinlik"].ToString(); takvimOlay += "
Tarih: " + oku["Tarih"].ToString().Substring(0, 10); takvimOlay += "
Saat: " + oku["Saat"].ToString().Substring(0, 5); //takvimOlay += "
Yer: " + oku["Yer"].ToString(); takvimOlay += "
"; takvimOlay += "
"; } e.Cell.Attributes.Add("title", takvimOlay); baglan.Close(); oku.Dispose(); } } //burada sayfamiz olusturulurken takvim gününüe ait etkinlik varsa o günü isaretledim } #endregion }
Download Example
Yorumlar
  • Hasan Baytaban29.5.2015 10:16:42

    Merhaba, elinize sağlık tam da arayıp bulamadığım şeydi. 12 aylık bir etkinlik takvimi yapacağım ve bu örnek üzerinden gidiyorum. Örneğinizi çalıştırdığımda aşağıdaki hatayı alıyorum. Veritabanı tarafında mı bir hata yapmış olabilirim sizce? System.FormatException: Dize geçerli bir DateTime olarak tanınmadı. 0 dizininde başlayan tanınmayan bir sözcük var. Satır 36: dates[i] = DateTime.Parse(dt.Rows[i][1].ToString());

Yorum yaz

Thanks, your message is sent successfully.