none
Repeaterla çekilen kategorilere tıklandığında yeni sayfaya atması RRS feed

  • 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.

    8 Mayıs 2017 Pazartesi 11:10

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.

    • Yanıt Olarak İşaretleyen atrondom 8 Mayıs 2017 Pazartesi 11:23
    • Yanıt İşaretini Geri Alan atrondom 8 Mayıs 2017 Pazartesi 11:28
    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:53
    8 Mayıs 2017 Pazartesi 11:16
    Moderatör
  • 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.

    • Yanıt Olarak İşaretleyen atrondom 8 Mayıs 2017 Pazartesi 12:05
    • Yanıt İşaretini Geri Alan atrondom 11 Mayıs 2017 Perşembe 07:06
    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
    8 Mayıs 2017 Pazartesi 11:38
    Moderatör
  • Ç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
    8 Mayıs 2017 Pazartesi 12:10
    Moderatör
  • Merhaba,

    Tabii ki, tam olarak nerede sorun yaşıyorsunuz?

    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
    11 Mayıs 2017 Perşembe 08:04
    Moderatör
  • Çok sevindim :)

    Eğer benim post'larımdan birinin yardımı ile çözüldüyse, lütfen Yanıt Olarak İşaretler misiniz?

    Çalışmalarınızda kolaylıklar dilerim.

    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
    11 Mayıs 2017 Perşembe 10:59
    Moderatör

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.

    • Yanıt Olarak İşaretleyen atrondom 8 Mayıs 2017 Pazartesi 11:23
    • Yanıt İşaretini Geri Alan atrondom 8 Mayıs 2017 Pazartesi 11:28
    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:53
    8 Mayıs 2017 Pazartesi 11:16
    Moderatör
  • 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?
    8 Mayıs 2017 Pazartesi 11:28
  • 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.

    • Yanıt Olarak İşaretleyen atrondom 8 Mayıs 2017 Pazartesi 12:05
    • Yanıt İşaretini Geri Alan atrondom 11 Mayıs 2017 Perşembe 07:06
    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
    8 Mayıs 2017 Pazartesi 11:38
    Moderatör
  • Çok teşekkürler üzerinde uğraşacağım. 
    8 Mayıs 2017 Pazartesi 12:06
  • Ç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
    8 Mayıs 2017 Pazartesi 12:10
    Moderatör
  • Umut bey ben dediklerinizin hepsini yaptım ve sorunsuz olduğuna eminim ancak bir türlü sonuca ulaşamıyorum tasarımdan kaynaklı olabilir dedim bir çok method denedim ancak kaç gündür sonuç alamadım. Yardımcı olmanız mümkün mü acaba bana?
    11 Mayıs 2017 Perşembe 07:06
  • Merhaba,

    Tabii ki, tam olarak nerede sorun yaşıyorsunuz?

    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
    11 Mayıs 2017 Perşembe 08:04
    Moderatör
  • Hallettim tamamdır. Olmadı olmadı 1001. Build yaptığımda çalıştı. Çok teşekkürler :)
    11 Mayıs 2017 Perşembe 09:54
  • Çok sevindim :)

    Eğer benim post'larımdan birinin yardımı ile çözüldüyse, lütfen Yanıt Olarak İşaretler misiniz?

    Çalışmalarınızda kolaylıklar dilerim.

    • Yanıt Olarak İşaretleyen atrondom 11 Mayıs 2017 Perşembe 12:52
    11 Mayıs 2017 Perşembe 10:59
    Moderatör