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