Osman KURT

Kendime Not

ASP.Net de Calender Kullanımı

Tarih olaylarında web sayfalarımızda kullanmamıza yarayacak bir araçtır calender. Çok kullanışlı bir yapısı ve kasmayan bir performansıyla biz developer ve kullanıcılara zorluk çıkarmayan bir işlevselliğe sahiptir.
Lafı uzatmadan gelelim kullanımına;
Öncelike default.aspx sayfamıza

<asp:Calendar ID="Calendar1" runat="server" ShowGridLines="True" BorderColor="Gray"
Font-Names="Verdana" Font-Size="8pt" Height="200px" ForeColor="#663399" DayNameFormat="FirstLetter"
Width="220px" BackColor="#FFFFCC" BorderWidth="1px" OnSelectionChanged="Calendar1_SelectionChanged"
CellPadding="0">
<TodayDayStyle ForeColor="White" BackColor="#FFCC66"></TodayDayStyle>
<SelectorStyle BackColor="#FFCC66"></SelectorStyle>
<NextPrevStyle Font-Size="9pt" ForeColor="#FFFFCC"></NextPrevStyle>
<DayHeaderStyle Height="1px" BackColor="Silver"></DayHeaderStyle>
<SelectedDayStyle Font-Bold="True" BackColor="#CCCCFF"></SelectedDayStyle>
<TitleStyle Font-Size="9pt" Font-Bold="True" ForeColor="#FFFFCC" BackColor="Black">
</TitleStyle>
<OtherMonthDayStyle ForeColor="#CC9966"></OtherMonthDayStyle>
</asp:Calendar>



Daha sonra kod kısmımıza geçiyoruz ve;

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
 Response.Redirect("Sorgu.aspx?Tarih=" + Convert.ToDateTime(Calendar1.SelectedDate).ToString("yyyy/MM/dd"));
}
Bu kodlarımız bu kadar şimdi diğer sayfalarıma geçelim.
Sorgu sayfamızı oluşturuyoruz.
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<table>
<tr style="height: 30px;">
<td>
<a><%#Eval("AdSoyad") %></a>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater> 



Bu sayfamızın cs tarafı ise;

SqlConnection bag = new SqlConnection(ConfigurationManager.ConnectionStrings["marken"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
 SqlCommand cmdE = new SqlCommand("Select * from Musteriler where MontajGunu='" + Convert.ToDateTime(Request.QueryString["Tarih"]).ToString("yyyy/MM/dd") + "'", bag);
SqlDataAdapter da = new SqlDataAdapter(cmdE);
DataTable dt = new DataTable();
da.Fill(dt);
Repeater1.DataSource = dt;
Repeater1.DataBind();
} 


Kodlarımız bu kadararkadaşlar umarım faydalı olur.

*Calender kullanırken veritabanımızda var olan etkinlikleri takvim üzerinde işaretli şekilde göstermek istersek de;

SqlCommand cmd = new SqlCommand("Select * from Musteriler", baglan.baglanti);
if (ConnectionState.Closed == baglan.baglanti.State)
baglan.baglanti.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Calendar1.SelectedDates.Add(Convert.ToDateTime(dr["MontajGunu"]));
}
dr.Close();
baglan.baglanti.Close(); 

 

şekilinde okutarak eklebiliyoruz. Bu olay load olayında yazılmalıdır.


Görüşmek üzere

Osman KURT

Yazılım Geliştirici ve Grafiker