C# Tarih İşlemleri #1: Yıl, Ay ve Haftanın İlk ve Son Gününü Bulmak

Ekim 28, 2016 Mustafa BÜKÜLMEZ 0 Yorum

Selamlar Arkadaşlar,
Bu derste C# ile yılın, ayın, haftanın ilk ve son günlerini nasıl bulacağımız anlatacağım. Daha doğrusu kullandığım yöntemi anlatacağım.

C#
// Haftanın ilk ve son günü

            DateTime dt_Hafta = DateTime.Now;
            switch ((int)dt.DayOfWeek)
            {
                case 0://Haftanın ilk günü Pazar kabul edildiğinden
                    dt_Hafta .AddDays(-6).ToShortDateString(); // İçinde olduğumuz haftanın başı Pazartesi
                    dt_Hafta .AddDays(1).ToShortDateString(); // Sonraki haftanın başı Pazartesi
                    break;

                default:// Gün Pazar değilse;
                    dt_Hafta .AddDays(1 - (int)dt.DayOfWeek).ToShortDateString(); // İçinde olduğumuz haftanın başı Pazartesi
                    dt_Hafta .AddDays(7).ToShortDateString(); //  Sonraki haftanın başı Pazartesi
                    break;
            }

//Ayın ilk ve son günü
            DateTime dt_Ay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); // Ay ilk günü
            dt_Ay .AddMonths(1).AddDays(-1);// Ay son günü

//Yılın ilk ve son günü
            DateTime dt_Yil = new DateTime(DateTime.Now.Year, 1, 1); // Yılın ilk günü
            dt_Yil .AddYears(1).AddDays(-1); // Yılın son günü

Hepsi bu kadar arkadaşlar. Umarım faydalı olmuştur.

0 Yorum:

ASP.Net Repeater içindeki nesneye ulaşmak ve Code Behind'da HTML Elementine Css Atamak

Ekim 28, 2016 Mustafa BÜKÜLMEZ 0 Yorum

Selamlar,
Bu derste anlatacağım uygulamayı yeni başladığım bir yönetim panelinde uyguladım ve başarılı oldum :) Umarım sizler içinde faydalı olur.
aspx sayfasındaki kodlarım.
Markup
<asp:Repeater ID="RP_MESAJLAR" runat="server">                                  
                                    <ItemTemplate>
                                        <li>

                                            <div class="task-checkbox">
                                                <input type="checkbox" id="CHK_isaret" runat="server" class="flat-grey" />
                                            </div>

                                            <div class="task-title">
                                                <span class="label label-danger">Tarih: <%#Eval("TARİH")   %></span>
                                                <br />

                                                <strong>Mesaj :  </strong>
                                                <span runat="server" id="sp1" class="task-title-sp"><%#Eval("MESAJ")   %></span>
                                                <br />

                                                <span runat="server" id="sp2" class="task-title-sp label label-primary">Firma: <%#Eval("FIRMA")   %></span>
                                                <strong>| </strong>
                                                <span runat="server" id="sp3" class="task-title-sp  label label-primary">Web Site: <%#Eval("WEBSITE")   %></span>
                                                <strong>| </strong>
                                                <span runat="server" id="sp4" class="task-title-sp  label label-primary">Email: <%#Eval("EMAİL")   %>  </span>

                                                <div class="pull-right hidden-phone">                                                  
                                                    <a href='<%# String.Format("Mesajlar.aspx?id={0}&islem=Okundu", Eval("KAYITNO")) %>' runat="server" id="a_okundu" title="Okundu Olarak İşaretle" class="btn btn-default btn-xs"><i class="fa fa-check"></i></a>
                                                    <a href='<%# String.Format("Mesajlar.aspx?id={0}&islem=Sil" , Eval("KAYITNO")) %>' runat="server" id="a_sil" title="Sil" class="btn btn-default btn-xs"><i class="fa fa-times"></i></a>
                                                </div>
                                            </div>
                                        </li>
                                    </ItemTemplate>
                                </asp:Repeater>
bir HTML elementine Code Behind da ulaşmak istiyorsanız mutlaka o elemente 
runat="server" ve  id="ID" 
ifadelerini eklemek zorundasınız. Aksi takdirde bu elemente Code Behind kısmından ulaşamazsınız.
-----------
NOT:
Markup
<div class="pull-right hidden-phone">                                                  
   <a href='<%# String.Format("Mesajlar.aspx?id={0}&islem=Okundu", Eval("KAYITNO")) %>' runat="server" id="a_okundu" title="Okundu Olarak İşaretle" class="btn btn-default btn-xs"><i class="fa fa-check"></i></a>
   <a href='<%# String.Format("Mesajlar.aspx?id={0}&islem=Sil" , Eval("KAYITNO")) %>' runat="server" id="a_sil" title="Sil" class="btn btn-default btn-xs"><i class="fa fa-times"></i></a>
</div>
Bu kısımda dikkat etmeniz gereken birşey var. Bir "a" tagına -runat="server"- eklediğinizdehref="" varsa hata verecektir. Bu yüzden yukarıda gördüğünüz String.Format() kullanarak yapmalı ve link'i tek tırnak( '  ' ) içinde almalısınız
-----------
Ama şuan yukarıdaki koda baktığımız zaman nesneler ve elementler bir Repeater kontrolünün içerisinde duruyor. Bu yüzden de Code Behind'da bu nesnelere ulaşamayız. Bu nesnelere ulaşmak için Repeater'in FindControl() özelliğinden faydalanacağız.
Code Behind
ASP.NET (C#)
using System.Web.UI.HtmlControls;
//bunu eklemeyi unutmayın 

protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = sql.ShowTable("SELECT * FROM dbo.MesajlariGetir('')");
        RP_MESAJLAR.DataSource = dt;
        RP_MESAJLAR.DataBind();
        //repeater i  dolduruyoruz.

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            var chk = (HtmlInputCheckBox)RP_MESAJLAR.Items.FindControl("CHK_isaret");
            // ID'si CHK_isaret olan controlü bulup alıyoruz.
            // Bu control windows yada devexpress controlü olmadığından "var" ile alıyoruz
            // diğer şekilde CheckBox(windows) ASPxCheckBox(devexpress) olarak alırdık. 
            var sp1 = (HtmlContainerControl)RP_MESAJLAR.Items.FindControl("sp1");
            var sp2 = (HtmlContainerControl)RP_MESAJLAR.Items.FindControl("sp2");
            var sp3 = (HtmlContainerControl)RP_MESAJLAR.Items.FindControl("sp3");
            var sp4 = (HtmlContainerControl)RP_MESAJLAR.Items.FindControl("sp4");
            var a_okundu = (HtmlAnchor)RP_MESAJLAR.Items.FindControl("a_okundu");
            var a_cevapla = (HtmlAnchor)RP_MESAJLAR.Items.FindControl("a_cevapla");

            // yukarıdaki namespace bu kontrollere ulaşabilmek için

            if (dt.Rows["GÖRÜLDÜ"].ToString() == "1")
            {
                // mesaj okunduysa 
                chk.Checked = true;
                sp1.Style.Add("text-decoration", "line-through");
                sp2.Style.Add("text-decoration", "line-through");
                sp3.Style.Add("text-decoration", "line-through");
                sp4.Style.Add("text-decoration", "line-through");
                sp1.Style.Add("color", " #bbbbbb");
                sp2.Style.Add("color", " #bbbbbb");
                sp3.Style.Add("color", " #bbbbbb");
                sp4.Style.Add("color", " #bbbbbb");

                a_okundu.Style.Add("background", " #f05050");
                //Mesaj bilgisinin üzerini çizecek ve rengini değiştirecek
                //ve okundu olarak işaretle butonunun bg rengini değiştirecek.             

            }            
        }
    }
Page_Load eventi içerisinde gördüğünüz gibi Repeater'in FindControl() özelliği ile nesnelere ulaşıp istediğimiz css atamasını yapmış olduk.
Bu sayfada kullandığımız CheckBox bir windows nesnesi değil yani bir HTML kontrolüdür. Code Behind'a yukarıdaki namespace'i eklemezseniz hata verecektir. Bu şekilde  kullanmamın sebebi ise windows yada devexpress checkbox'una istediğim css leri uygulayamamış olmamdır ama sonuçta bu şekilde de amacıma ulaşmış oldum.
Umarım faydalı olmuştur..

0 Yorum: