09 December 2016

Blog Projesi 6: Makale Sayfası Oluşturma

Projeye yeni bir Web Form using MasterPage ekleyelim. (Yazi.aspx) Anasayfada yer alan makale başlıklarına tıklandığında ilgili makale sayfası açılması için gerekli kodları Default.aspx sayfasına yazalım:

<a href='Yazi.aspx?yid=<%#Eval("MakaleID") %>' title='<%#Eval("MakaleBaslik")%>'>

Tamamı aşağıdaki şekilde olacak:

<asp:Repeater ID="rptMakaleler" runat="server">
 <ItemTemplate>
 <div class="post">
 <h2 class="title"><a href='Yazi.aspx?yid=<%#Eval("MakaleID") %>' title='<%#Eval("MakaleBaslik")%>'><%#Eval("MakaleBaslik")%></a></h2>
 <p class="meta"><span class="date"><%#Eval("MakaleEklenmeTarihi")%></span><span class="posted">Yazar: <a href="#">Admin</a></span></p>
 <div style="clear: both;">&nbsp;</div>
 <div class="entry">
 <p><%#Eval("MakaleIcerik")%></p>
 <p class="links"><a href='Yazi.aspx?yid=<%#Eval("MakaleID") %>' title='<%#Eval("MakaleBaslik")%>'>Devamını Oku</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href="#">Yorumlar</a></p>
 </div>
 </div></ItemTemplate>
 </asp:Repeater>

Açılan makale sayfasında makale görüntüleme işlemini yapalım. BlogDBContext’in içine gerekli metodu yazalım:

public static List<Makale> MakaleOku(Makale m)
 {
 List<Makale> yeniMakale = new List<Makale>();
 SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["BlogConn"].
 ConnectionString);
 SqlCommand sqlcmd = new SqlCommand("select * from Makale where MakaleID=@id", sqlcon);
 sqlcmd.Parameters.AddWithValue("@id", m.MakaleID);
 sqlcon.Open();
 SqlDataReader sdr = sqlcmd.ExecuteReader();
 if (sdr.Read())
 {
 m.MakaleBaslik = sdr[1].ToString();
 m.MakaleIcerik = sdr[2].ToString();
 m.MakaleEklenmeTarihi = Convert.ToDateTime(sdr[3]);
 yeniMakale.Add(m);
 }
sqlcon.Close();
 return yeniMakale;
 }

Yazi.aspx cs dosyasına yazacağımız kodlar:

protected void Page_Load(object sender, EventArgs e)
 {
 Makale m = new Makale();
 m.MakaleID = Convert.ToInt32(Request.QueryString["yid"]);
 List<Makale> donenMakale = BlogDBContext.MakaleOku(m);
 foreach (Makale item in donenMakale)
 {
 Page.Title = item.MakaleBaslik;
 }
rptYazi.DataSource = donenMakale;
 rptYazi.DataBind();
 }

Yazi.aspx source:

<asp:Repeater ID="rptYazi" runat="server">
 <ItemTemplate>
 <div class="post">
 <h2 class="title"><a href='#' title='<%#Eval("MakaleBaslik")%>'><%#Eval("MakaleBaslik")%></a></h2>
 <p class="meta"><span class="date"><%#Eval("MakaleEklenmeTarihi")%></span><span class="posted">Yazar: <a href="#">Admin</a></span></p>
 <div style="clear: both;">&nbsp;</div>
 <div class="entry">
 <p><%#Eval("MakaleIcerik")%></p>
 </div>
 </div></ItemTemplate>
 </asp:Repeater>

Comments

  1. Oğuzhan says:

    SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings[“BlogConn”].
    ConnectionString);

    kısmında hata veriyor , niye olabilir ?

    • Oğuzhan says:

      SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings[“WeblogCon”].
      ConnectionString); şeklinde olacak.