En iyi yanıtlayıcılar
Repeaterla çekilen kategorilere tıklandığında yeni sayfaya atması

Soru
-
Repeater sıkıntılı biri olarak sorunum;
Kategorilerim var her birini veritabanından çekiyorum ve resim olarak ayrı ayrı gelen 6 kategorinin her birine tıklandığında beni farklı bir sayfaya atmasını istiyorum.
Kodum şu şekilde;
<asp:Repeater ID="rp_Kategoriler" runat="server">
<ItemTemplate>
<div class="col-sm-4 col-xs-6">
<asp:Image ID="Image1" runat="server" ImageUrl='<%#Eval("KategorilerResim") %>' title='<%#Eval("KategorilerAd") %>' />
</div>
</ItemTemplate>
</asp:Repeater>İLK resme tıklandığında insaat.aspx ikincisi beni tekstil.aspx e atsın mesela. Bunun için admin paneli kısmında nası bir düzenleme yapmalıyım bilemedim kafamda canlanmadı netten baya baktım sadece kafamı karıştırdılar. Yardımcı olabilirsiniz umarım.
Yanıtlar
-
Merhaba,
Bunun için, veritabanındaki kategoriler tablonuzda URL isimli bir kolon oluşturup, hangi kategorinin hangi sayfaya yönlenmesini istiyorsanız orada tutabilirsiniz. Daha sonrasında repeater ile veri gösterimi yaparken, a link etikenin href attribute'unda <%#Eval("URL")%> şeklinde belirtebilirsiniz.
Örn;
<a href="<%#Eval("URL")%>"><%#Eval("KategoriAdi")%></a>
Çalışmalarınızda kolaylıklar dilerim.
-
Merhaba,
Tabii ki, sayfalarınızı ayrı tabloda tutmalısınız. Zira sayfalarınızın bazı bilgileri olacak(Yazar,Oluşturulma Tarihi,Okunma Sayısı,Beğeni Sayısı en önemlisi Başlık ve İçerik).
Burada dikkat etmeniz gereken nokta şu;
Eğer bir sayfanızın bir kategoriye bağlı olmasını istiyorsanız, burada bire çok (one to many) ilişki kurmalısınız.
Sayfalar diye bir tablo açın, ve o tabloya sayfa ile ilgili hangi bilgileri saklamak istiyorsanız o kolonları ekleyin. En önemlisi KategoriID diye bir kolon ekleyip, o kolon ile Kategoriler tablosundaki ID kolonunu ilişkilendirin. (Bu durumda Kategoriler tablosundaki ID Primary Key, Sayfalar tablosundaki KategoriID foreign key olacaktır.)Tabii sayfalar tablosundaki ID kolonu identity ve primary key olmalı. Dolayısı ile her sayfa eklediğinizde ID bilgisi birer birer ya da tercihinize bağlı olacak şekilde artacak ve aynı olmayacaktır. Sizde bu ID bilgisini kullanarak sayfanızı göstereceksiniz.
Aşamalar:
1) Repeater ile kategorileri listeliyoruz, ve kategori.aspx?ID=KategoriID şeklinde yönlendirmenizi yapıyoruz.
2) kategori.aspx sayfasında Code Behind(aspx.cs) bölümünde, Request.QueryString["ID"] ile gönderilen ID bilgisini alıyoruz.
3) Veritabanı sorgusu yapıyoruz; "Select * from Sayfalar where KategoriID=QueryString'ten gelen ID numarası"
4) SqlDataReader veya SqlDataAdapter hangisini kullanıyorsanız, gelen verileri set ediyorsunuz.
5) Artık verileri aldınız. Bundan sonraki işlem kategori.aspx sayfasına repeater koyup, SqlDataReader veya SqlDataAdapter nesnesini(hangisini kullanıyorsanız), kullanmış olduğunuz repeater'a DataSource olarak set ediyorsunuz.Çalışmalarınızda Kolaylıklar Dilerim.
-
Çok teşekkürler üzerinde uğraşacağım.
Rica ederim. Eğer takıldığınız bir nokta olursa, topic açmanız dahilinde yardımcı olmaktan memnuniyet duyarım.
Çalışmalarınızda kolaylıklar dilerim.
- Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
-
-
Tüm Yanıtlar
-
Merhaba,
Bunun için, veritabanındaki kategoriler tablonuzda URL isimli bir kolon oluşturup, hangi kategorinin hangi sayfaya yönlenmesini istiyorsanız orada tutabilirsiniz. Daha sonrasında repeater ile veri gösterimi yaparken, a link etikenin href attribute'unda <%#Eval("URL")%> şeklinde belirtebilirsiniz.
Örn;
<a href="<%#Eval("URL")%>"><%#Eval("KategoriAdi")%></a>
Çalışmalarınızda kolaylıklar dilerim.
-
Teşekkürler bu olay tamamdır ancak kendi projemde var olan sayfalarımı veritabanında ayrıca tabloda mı tutmalıyım. Html kısmında yönleneceği sayfaları sırasıyla yazmam mümkün değil mi? Link olarak değil projede aspx uzantılı olacak tıklandığında gidilecek sayfalar. Anlatabildim umarım?
-
Merhaba,
Tabii ki, sayfalarınızı ayrı tabloda tutmalısınız. Zira sayfalarınızın bazı bilgileri olacak(Yazar,Oluşturulma Tarihi,Okunma Sayısı,Beğeni Sayısı en önemlisi Başlık ve İçerik).
Burada dikkat etmeniz gereken nokta şu;
Eğer bir sayfanızın bir kategoriye bağlı olmasını istiyorsanız, burada bire çok (one to many) ilişki kurmalısınız.
Sayfalar diye bir tablo açın, ve o tabloya sayfa ile ilgili hangi bilgileri saklamak istiyorsanız o kolonları ekleyin. En önemlisi KategoriID diye bir kolon ekleyip, o kolon ile Kategoriler tablosundaki ID kolonunu ilişkilendirin. (Bu durumda Kategoriler tablosundaki ID Primary Key, Sayfalar tablosundaki KategoriID foreign key olacaktır.)Tabii sayfalar tablosundaki ID kolonu identity ve primary key olmalı. Dolayısı ile her sayfa eklediğinizde ID bilgisi birer birer ya da tercihinize bağlı olacak şekilde artacak ve aynı olmayacaktır. Sizde bu ID bilgisini kullanarak sayfanızı göstereceksiniz.
Aşamalar:
1) Repeater ile kategorileri listeliyoruz, ve kategori.aspx?ID=KategoriID şeklinde yönlendirmenizi yapıyoruz.
2) kategori.aspx sayfasında Code Behind(aspx.cs) bölümünde, Request.QueryString["ID"] ile gönderilen ID bilgisini alıyoruz.
3) Veritabanı sorgusu yapıyoruz; "Select * from Sayfalar where KategoriID=QueryString'ten gelen ID numarası"
4) SqlDataReader veya SqlDataAdapter hangisini kullanıyorsanız, gelen verileri set ediyorsunuz.
5) Artık verileri aldınız. Bundan sonraki işlem kategori.aspx sayfasına repeater koyup, SqlDataReader veya SqlDataAdapter nesnesini(hangisini kullanıyorsanız), kullanmış olduğunuz repeater'a DataSource olarak set ediyorsunuz.Çalışmalarınızda Kolaylıklar Dilerim.
-
-
Çok teşekkürler üzerinde uğraşacağım.
Rica ederim. Eğer takıldığınız bir nokta olursa, topic açmanız dahilinde yardımcı olmaktan memnuniyet duyarım.
Çalışmalarınızda kolaylıklar dilerim.
- Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
-
-
-
-