Admin Paneli (Yeni Kitap Kayıt İşlemi) Admin.aspx sayfamıza yeni bir HyperLink kontrolü ekliyoruz. NavigateUrl sine aşağıdaki bağlantıyı oluşturuyoruz. Böylece, Link tıklandığında yeni_kitap_kayit.ascx UserControl sayfamızı PlaceHolder kontrolümüz içerisinde çağırmış oluyoruz. Kitap Ekle linki tıklandığında, admin.aspx sayfamızın görüntüsü aşağıdaki şekilde olacaktır. Yeni_kitap_ekle.ascx UserControl sayfamızın Html (Source) kodları aşağıdaki şekildedir. <%@ Control Language="C#" AutoEventWireup="true" CodeFile="yeni_kitap_kayit.ascx.cs" Inherits="admin_yeni_kitap_kayit" %>
<%@ Register assembly="fredck.fckeditorv2" namespace="fredck.fckeditorv2" tagprefix="fckeditorv2" %> <style type="text/css">.style1 width: 640px; text-align: left;.style2 width: 93px; text-align: left;.style5 width: 93px; height: 59px;.style7 width: 93px; </style> <table style="width:100%;"> <td class="style2"> <td class="style1" style="text-align: center; background-color: #0099CC"> <b>kitap Bilgileri</b> Kitap Adı <asp:textbox ID="TextBox1" runat="server"></asp:textbox> Yazarı <asp:textbox ID="TextBox2" runat="server"></asp:textbox> Yayınevi <asp:textbox ID="TextBox3" runat="server"></asp:textbox> Kitap Detayı <asp:textbox ID="TextBox4" runat="server" Height="111px" TextMode="MultiLine" Width="452px"></asp:TextBox>
Fiyatı <asp:textbox ID="TextBox5" runat="server"></asp:textbox> <td class="style5"> Kategorisi <asp:dropdownlist ID="DropDownList1" runat="server" AutoPostBack="True" DataSourceID="AccessDataSource1" DataTextField="kategori_adi" DataValueField="id" onselectedindexchanged="dropdownlist1_selectedindexchanged"> </asp:dropdownlist> <asp:accessdatasource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/kitap.accdb" SelectCommand="SELECT * FROM [kategoriler]"> </asp:accessdatasource> Alt kategorisi <asp:dropdownlist ID="DropDownList2" runat="server" AutoPostBack="True" DataSourceID="AccessDataSource2" DataTextField="alt_kategori_adi" DataValueField="id"> </asp:dropdownlist> <asp:accessdatasource ID="AccessDataSource2" runat="server" DataFile="~/App_Data/kitap.accdb" SelectCommand="SELECT * FROM [altkategoriler]"></asp:accessdatasource> <td style="text-align: center; background-color: #0099CC"> <b >Kitap Dosyaları</b> Resim1 <asp:fileupload ID="FileUpload1" runat="server" /> Resim2 <asp:fileupload ID="FileUpload2" runat="server" /> Resim3 <asp:fileupload ID="FileUpload3" runat="server" />
Resim4 <asp:fileupload ID="FileUpload4" runat="server" /> Video <asp:fileupload ID="FileUpload5" runat="server" /> <asp:button ID="Button1" runat="server" Text="Kitap Bilgilerini Kaydet" onclick="button1_click" /> <asp:label ID="Label1" runat="server" Text=" "></asp:label> </table> Kategorisi ve alt kategorisi DropDownList kontrollerinin veritabanı bağlantısı için iki tane AccessDataSource kontrolü eklenmiştir. Birinci AccessDataSource 1 kontrolümüz veritabanımızdan ana kategorileri çekecek şekilde ayarlanacaktır.
İkinci AccessDataSource2 kontrolümüz veritabanımızdan, DropDownList1 içerisinden seçilen ana kategorinin alt kategorilerini çekecek şekilde ayarlanacaktır. DropDownList1 kontrolünün SelectedIndexChanged olayına aşağıdaki kodlar eklenecektir. protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) //Label1.Text = DropDownList1.SelectedValue; AccessDataSource2.SelectCommand = "SELECT * FROM altkategoriler WHERE kategori_id=" + DropDownList1.SelectedValue.ToString() ; AccessDataSource2.DataBind(); Böylece DropDownList1 içerisinden seçilen ana kategorinin alt kategorileri, DropDownList2 içerisinde görüntülenecektir. DropDown kontrollerinin AutoPostBack özelliği aktif hale getirilmelidir. Bunun nedeni, seçim yapılınca sayfanın bilgileri post edip refresh yapması içindir.
Kitap Bilgilerini Kaydet Butonu tıklandığında ise aşağıdaki kodlar çalıştırılacaktır; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Configuration; using System.Data.OleDb; using System.Data; public partial class admin_yeni_kitap_kayit : System.Web.UI.UserControl string isim = DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString(); protected void Page_Load(object sender, EventArgs e) protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) //Label1.Text = DropDownList1.SelectedValue; AccessDataSource2.SelectCommand = "SELECT * FROM altkategoriler WHERE kategori_id=" + DropDownList1.SelectedValue.ToString() ; AccessDataSource2.DataBind(); protected void Button1_Click(object sender, EventArgs e) // String baglanti2 = WebConfigurationManager.ConnectionStrings["veritabani"].ConnectionString; // String sql_cumlesi2 = "INSERT INTO kitap(kitap_adi,yazar,yayinevi,fiyat,kategorisi,altkategorisi,resim1,resim2,resim3,res im4,video,detay) VALUES(@adi,@yzr,@yayinev,@fyt,@kategori,@altkategori,@r1,@r2,@r3,@r4,@vdo,@dty)"; OleDbConnection baglanti = new OleDbConnection(); // Veritabanı baglanti nesnesi tanımlanıyor baglanti.connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Server.MapPath("~/App_Data\\kitap.accdb"); //Veritabanına bağlanılıyor baglanti.open();//veritabanını açılıyor. String sql_cumlesi = "INSERT INTO kitap(kitap_adi,yazar,yayinevi,fiyat,kategorisi,altkategorisi,resim1,resim2,resim3,res im4,video,detay) VALUES(@adi,@yzr,@yayinev,@fyt,@kategori,@altkategori,@r1,@r2,@r3,@r4,@vdo,@dty)"; OleDbCommand komut = new OleDbCommand(sql_cumlesi, baglanti); komut.parameters.add("@adi", OleDbType.Variant).Value = TextBox1.Text; komut.parameters.add("@yzr", OleDbType.Variant).Value = TextBox2.Text; komut.parameters.add("@yayinev", OleDbType.Variant).Value = TextBox3.Text;
komut.parameters.add("@fyt", OleDbType.Variant).Value = TextBox5.Text; komut.parameters.add("@kategori", OleDbType.Variant).Value = DropDownList1.SelectedValue; komut.parameters.add("@altkategori", OleDbType.Variant).Value = DropDownList2.SelectedValue; komut.parameters.add("@r1", OleDbType.Variant).Value = isim.tostring()+".jpg"; komut.parameters.add("@r2", OleDbType.Variant).Value = isim.tostring()+"1.jpg"; komut.parameters.add("@r3", OleDbType.Variant).Value = isim.tostring()+"2.jpg"; komut.parameters.add("@r4", OleDbType.Variant).Value = isim.tostring()+"3.jpg"; komut.parameters.add("@vdo", OleDbType.Variant).Value = isim.tostring()+"v.swf"; komut.parameters.add("@dty", OleDbType.Variant).Value = TextBox4.Text; komut.executenonquery(); FileUpload1.SaveAs(Server.MapPath("../kitaplar/"+isim.ToString()+".jpg")); FileUpload2.SaveAs(Server.MapPath("../kitaplar/" + isim.tostring() + "1.jpg")); FileUpload3.SaveAs(Server.MapPath("../kitaplar/" + isim.tostring() + "2.jpg")); FileUpload4.SaveAs(Server.MapPath("../kitaplar/" + isim.tostring() + "3.jpg")); FileUpload5.SaveAs(Server.MapPath("../kitaplar/" + isim.tostring() + "v.swf")); Label1.Text = "Kitap Bilgileri kaydedildi<meta http-equiv='refresh' content='3';url='admin.aspx?sayfa=yeni_kitap_kayit'"; //Response.Redirect("admin.aspx?sayfa=yeni_kitap_kayit");