Asp.Net Basit E-Ticaret Sepet Yapımı
Merhaba Arkadaşlar ,Birçoğumuz E-ticaret uygulamarında bulunmuş yada bir e-ticaret sitesi yapıyoruzdur.Bu aşamada ele alacağımız noktada Session bazlı sepet yapımı olarak örneğime başlıyor olacağım.İlk olarak Product.aspx Sayfamızın Source bölümü ile başlıyor olacağım .
<%@ Page Title="" Language="C#" MasterPageFile="~/SiteMaster/Main.Master" AutoEventWireup="true" CodeBehind="Product.aspx.cs" Inherits="DuffDunnAyakkabi.SiteMaster.Product" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> <%@ Register Assembly="CollectionPager" Namespace="SiteUtils" TagPrefix="cc1" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <div id="content" class="float_r"> <asp:DataList ID="DataList1" runat="server" RepeatColumns="3" RepeatDirection="Horizontal" onitemcommand="DataList1_ItemCommand"> <HeaderTemplate><h1><%#Eval("MarkaAdi") %></h1></HeaderTemplate> <ItemTemplate> <div class="product_box"> <h3><%#Eval("UrunAdi")%></h3> <a href="ProductDetails.aspx?ID=<%#Eval("UrunID") %>&MrkID=<%#Eval("MarkaID") %>"><img src='<%#Eval("Resim") %>' alt="Shoes 1" /></a> <p> Urun Adeti : <asp:TextBox ID="txtAdet" CssClass="text-images" ForeColor="White" Width ="50px" Text="1" runat="server"></asp:TextBox><asp:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="txtAdet" FilterType="Numbers"> </asp:FilteredTextBoxExtender> </p> <p class="product_price"><%# String.Format("{0:C}",Eval("Fiyat"))%></p> <asp:LinkButton ID="lnkSepet" CommandName="sepeteat" CommandArgument='<%#Eval("UrunID") %>' class="addtocart" runat="server"></asp:LinkButton> <a href="ProductDetails.aspx?ID=<%#Eval("UrunID") %>&MrkID=<%#Eval("MarkaID") %>" class="detail"></a> </div> </ItemTemplate> </asp:DataList> </div> <cc1:CollectionPager ID="CollectionPager1" runat="server" BackNextLocation="Split" BackText="« Geri" FirstText="ilk" LabelText="Sayfa" PageSize="9" LastText="Son" NextText="ileri>>" PagingMode="QueryString" ResultsFormat="Sayfa {0}-{1} (of {2})" ShowLabel="False" MaxPages="100"> </cc1:CollectionPager> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server"> <p> Sepetteki Ürün Sayısı:<strong><%= sCount.ToString() %> </strong>( <a href="ShoppingCart.aspx">Sepete Bak</a> ) <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"> </asp:ToolkitScriptManager> </p> </asp:Content>
Sayfa tasarımı basit olması amaçlı yazılmış olup asıl konumuz olan sepet
tarafımızdaki kodlarımızı inceleyerek devam edelim.Bu Aşamada Örneği video
anlatım olarak daha önceden sizlerle paylaşmış olduğum bir uygulama içersinden
paylaşıyor olacağım.Bu aşamada sepet haricinde sınıfdan gelen sorular üzerine
yazmış olduğum kod bölümlerinide faydalı olması amaçlı paylaşıyorum
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using DuffDunnAyakkabi.Model; namespace DuffDunnAyakkabi.SiteMaster { public partial class Product : System.Web.UI.Page { int gelenID = 0; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (Request.QueryString["CatID"] != null) { gelenID = Convert.ToInt32(Request.QueryString["CatID"].ToString()); UrunDoldur(gelenID); } else if (Request.QueryString["MarkaID"] != null) { gelenID = Convert.ToInt32(Request.QueryString["MarkaID"].ToString()); MarkayaGoreDoldur(gelenID); } else if (Request.QueryString["fi1"] != null && Request.QueryString["fi2"] != null) { string fiyat = Request.QueryString["fi1"].ToString(); string fiyat2 = Request.QueryString["fi2"].ToString(); FiyataGoreAra(Convert.ToDecimal(fiyat), Convert.ToDecimal(fiyat2)); } else { TumUrunlerGelsin(); } } else { if (Request.QueryString["MarkaID"]!=null) { gelenID = Convert.ToInt32(Request.QueryString["MarkaID"].ToString()); MarkayaGoreDoldur(gelenID); } else { TumUrunlerGelsin(); } } //SqlDataReader rdr = cmd.ExecuteReader(); //DataTable dt = new DataTable(); //dt.Load(rdr); //CollectionPager1.DataSource = dt.DefaultView; //CollectionPager1.BindToControl = DataList1; //DataList1.DataSource = CollectionPager1.DataSourcePaged; //DataList1.DataBind(); //cnn.Close(); } private void TumUrunlerGelsin() { VeriTabanimDataContext db = new VeriTabanimDataContext(); var urungetir = (from k in db.Uruns select k).ToList(); CollectionPager1.DataSource = urungetir; CollectionPager1.BindToControl = DataList1; DataList1.DataSource = CollectionPager1.DataSourcePaged; DataList1.DataBind(); } private void MarkayaGoreDoldur(int gelenID) { VeriTabanimDataContext db = new VeriTabanimDataContext(); var urungetir = (from k in db.Uruns where k.MarkaID == gelenID select k).ToList(); CollectionPager1.DataSource = urungetir; CollectionPager1.BindToControl = DataList1; DataList1.DataSource = CollectionPager1.DataSourcePaged; DataList1.DataBind(); } private void UrunDoldur(int gelenID) { VeriTabanimDataContext db = new VeriTabanimDataContext(); var urungetir = (from k in db.Uruns where k.KategoriID == gelenID select k).ToList(); CollectionPager1.DataSource = urungetir; CollectionPager1.BindToControl = DataList1; DataList1.DataSource = CollectionPager1.DataSourcePaged; DataList1.DataBind(); } private void FiyataGoreAra(decimal aranan1, decimal aranan2) { VeriTabanimDataContext db = new VeriTabanimDataContext(); var fiyatagore = (from k in db.Uruns orderby k.Fiyat ascending where k.Fiyat >= aranan1 && k.Fiyat <= aranan2 select k).ToList(); CollectionPager1.DataSource = fiyatagore.ToList(); CollectionPager1.BindToControl = DataList1; DataList1.DataSource = CollectionPager1.DataSourcePaged; DataList1.DataBind(); } VeriTabanimDataContext db = new VeriTabanimDataContext(); public int sCount { get; set; } protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) { // Sepet yaparken session'ı kullanıyor olacağız //Eger session dolu ise aynı sepet kullanmasını sağladım //Eger session boşşa yeni bir sepet oluşturdum switch (e.CommandName) { case "sepeteat": { TextBox txt = e.Item.FindControl("txtAdet") as TextBox; if (txt != null && string.IsNullOrEmpty(txt.Text) == false) { List<SepettekiUrun> urunler = null; int adet = Convert.ToInt32(txt.Text); int id = Convert.ToInt32(e.CommandArgument.ToString()); Urun secilen = db.Uruns.SingleOrDefault(a => a.UrunID == id); if (secilen != null) { SepettekiUrun sps = new SepettekiUrun(); sps.UrunID = secilen.UrunID; sps.UrunAdi = secilen.UrunAdi; sps.Adet = adet; sps.Fiyat = (decimal)secilen.Fiyat; sps.StokMiktari = (int)secilen.StokMiktari; sps.Resim = secilen.Resim; if (Session["Sepet"] == null) { urunler = new List<SepettekiUrun>(); urunler.Add(sps); Session["Sepet"] = urunler; } else { bool varmi=false; urunler = (List<SepettekiUrun>)Session["Sepet"]; foreach (var item in urunler) { if (item.UrunID == secilen.UrunID) { item.Adet += 1; varmi=true; } } if (varmi == false) { urunler.Add(sps); } Session["Sepet"] = urunler; } sCount = urunler.Count; //foreach (var item in (List<SepettekiUrun>)Session["Sepet"]) //{ // item.UrunID = sps.UrunID; // item.Adet += adet; // urunler = (List<SepettekiUrun>)Session["Sepet"]; //} } } } break; default: break; } } public class SepettekiUrun { public int UrunID { get; set; } public string UrunAdi { get; set; } public decimal Fiyat { get; set; } public int Adet { get; set; } public string Resim { get; set; } public int StokMiktari { get; set; } public List<SepettekiUrun> SepetiTemizle() { var bosalt = new List<SepettekiUrun>(); HttpContext.Current.Session["Sepet"] = bosalt; return bosalt; } public List<SepettekiUrun> UrunCikar(int urunID) { var cikart = (List<SepettekiUrun>)HttpContext.Current.Session["Sepet"]; var secilenurun = cikart.FirstOrDefault(a => a.UrunID == urunID); cikart.Remove(secilenurun); HttpContext.Current.Session["Sepet"] = cikart; return cikart; } } } }
Umarım Faydalı Olur
4 yorum :
Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.
Kaydol:
Kayıt Yorumları
(
Atom
)
'/SiteMaster/Main.Master' dosyası yok.
YanıtlaSilhatası çıkıyor acil yardım lütfen
Önceliklle kodlama esnasından evvel Solution Explorer bölümünde yer alan klasörlerinizde Main Master isimli Master Pageniz SiteMaster içinde yer alıyormu bunu kontrol edin daha sonra eğer farklı bir konumda ise dosya yolunuzu ../ gibi yada yukarda bahsi geçen /SiteMaster/Main.Master gibi yazarak doğru dosya yolu ile Master Pagenizin Yolunu tanımlayabilirsiniz
YanıtlaSilbenim ihtiyacım olan kod bu mu ?
SilHocam benimde bir iki sorum olacak sayafanıza yazdım
YanıtlaSil