none
İç içe repeater ile Url Routing RRS feed

  • Soru

  • Merhaba, bir menü tasarlarken ana kategoriler için Url Routing uygulayabiliyorum fakat alt kategoriler için nasıl bir yol izlemek gerekiyor. Yardımcı olacaklara şimdiden teşekkür ederim.

    Kodlar : 

    <asp:Repeater ID="rptMenu" runat="server" 
                            OnItemDataBound="rptMenu_ItemDataBound">
                            <ItemTemplate>
                                <li class="level1">
                                    <asp:HyperLink ID="hlKategori" runat="server"></asp:HyperLink>
                                    <ul>
                                        <asp:Repeater ID="rptAltKategoriler" runat="server">
                                            <ItemTemplate>
                                                <li class="level2">
                                                    <asp:HyperLink ID="hlAltKategori" runat="server" NavigateUrl='???????????'><%# Eval("alt_KAdi") %></asp:HyperLink>
                                                </li>
                                            </ItemTemplate>
                                        </asp:Repeater>
                                    </ul>
                                </li>
                            </ItemTemplate>
                        </asp:Repeater>

    23 Mayıs 2013 Perşembe 10:44

Tüm Yanıtlar

  • Güncel
    23 Mayıs 2013 Perşembe 13:25
  • Database yapısını bilmediğimizden yanıt vermek zor, Kategoriler tek tabloda mı yani self-referencing mi? yoksa alt kategoriler ayrı tablolarda mı? 

    içteki repeater'i nerde dolduruyorsunuz?

    urlrouting şablonunuz nasıl?


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
    MCC

    23 Mayıs 2013 Perşembe 13:56
    Moderatör
  • Teşekkür ederim cevabın için, 

    Ana kategoriler ile alt kategoriler ayrı tablolarda.

    Aşağıda kodları veriyorum.

    Kodlar : 

    <asp:Repeater ID="rptMenu" runat="server" 
                            OnItemDataBound="rptMenu_ItemDataBound"> 
                            <ItemTemplate> 
                                <li class="level1"> 
                                    <asp:HyperLink ID="hlKategori" runat="server"></asp:HyperLink> 
                                    <ul> 
                                        <asp:Repeater ID="rptAltKategoriler" runat="server"> 
                                            <ItemTemplate> 
                                               <li class="level2"> 
                                                    <asp:HyperLink ID="hlAltKategori" runat="server" NavigateUrl='??????????'><%# Eval("alt_Adi") %></asp:HyperLink> 
                                               </li> 
                                            </ItemTemplate> 
                                        </asp:Repeater> 
                                    </ul> 
                                </li> 
                            </ItemTemplate> 
                        </asp:Repeater> 




    .cs kodları class içinde yazdım 


    SqlConnection conn = baglanti(); 
            SqlCommand cmd = new SqlCommand("sp_menuGetir", conn); 
            cmd.CommandType = CommandType.StoredProcedure; 
            DataTable dt = new DataTable(); 
            SqlDataAdapter Da = new SqlDataAdapter(cmd); 
            Da.Fill(dt); 
            return dt; 



    itemdatabound için yazdıgım kodlar 

    HyperLink hl = e.Item.FindControl("hlKategori") as HyperLink; 
            hl.Text = DataBinder.Eval(e.Item.DataItem, "sayfaAdi").ToString(); 
            RouteValueDictionary parameters = new RouteValueDictionary() 
            { 
                { "seo",DataBinder.Eval(e.Item.DataItem, "seo").ToString() } 
            }; 
            VirtualPathData path = RouteTable.Routes.GetVirtualPath(null, "Kategoriler", parameters); 
            hl.NavigateUrl = path.VirtualPath; 


            Repeater rp = (Repeater)e.Item.FindControl("rptAltKategoriler"); 
            SqlConnection conn = fonksiyonlar.baglanti(); 
            SqlCommand cmd = new SqlCommand("sp_altkategorigetir", conn); 
            cmd.CommandType = CommandType.StoredProcedure; 
            if (conn.State == ConnectionState.Open) 
            { 
                conn.Close(); 
            } 
            try 
            { 
                conn.Open(); 
                cmd.Parameters.AddWithValue("@alt_BagliKatID", Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "sayfaID").ToString())); 
                SqlDataReader dr = cmd.ExecuteReader(); 
                rp.DataSource = dr; 
                rp.DataBind(); 
                if (dr.Read()) 
                { 
                   HyperLink hls = e.Item.FindControl("hlAltKategori") as HyperLink; 
                   RouteValueDictionary parameterss = new RouteValueDictionary() 
                   { 
                        { "alt_Seo",DataBinder.Eval(e.Item.DataItem, "alt_Seo").ToString() } 
                   }; 
                   VirtualPathData paths = RouteTable.Routes.GetVirtualPath(null, "AltKategori", parameterss); 
                   hls.NavigateUrl = paths.VirtualPath; 
                } 
            } 
            catch (Exception ex) 
            { 
                Response.Write("Hata Oluştu :" + ex.Message); 
            } 
            finally 
            { 
                conn.Close(); 
                conn.Dispose(); 
            } 

    23 Mayıs 2013 Perşembe 14:27