ASP.NET BreadCrumb Class' ı (Neredeyim? şeysi)

17-4-2005

Sitelerdeki klasik neredeyim "Bread Crumbs" diye tabir edilen kısımdan yapmam gerekiyordu. Aynı zamanda kategorilerden recursive olarak yukarı tırmanmam gerektiğinden dolayı Last-in First-Out stili bir yapıya sahip olamlıydı. Klasik Arraylist vs. bu işi pek kesmeyeceğinden daha doğrusu gereksiz uğraştıracağından basitçe bir Collections.Stack' i inherit eden bir class yazdım.

Kritik bir nokta ben "pop" ile içeridekileri dışarı çıkartıyorum bu durumda içerideki stringi bir defa kullanabilirsiniz daha eğer stringin kalmasını istiyorsanız Enumarator oluşturun, bir diğer konuda biraz daha performans artırmak için string içerideki bir property ye set edebilir ve sadece bir defa başta oluşturabiliriz. Ancak tabii ki bu kodu tamamen nasıl kullanacağınıza bağlı. Örneği vermemin temel sebebi kendi basit işlemlerinizi mevcut .NET Framework' ün inherit edilebilir class' ları aracılığı ile basitçe yapabileceğiniz göstermek istemem.

İşinize yarayabilir;

        Public Class BreadCrumb
       
Inherits Collections.Stack

       
Sub New ()
           
MyBase . New ()
       
End Sub

        Public Overloads Sub Add( ByVal Link As String , ByVal Name As String , Optional ByVal Description As String = "" )
           
MyBase .Push( " <a href="" " & Link & " "" title="" " & Description & " ""> " & Name & " </a> " )
       
End Sub

        Public Shadows Function ToString() As String
            Dim breadSBuilder As New StringBuilder( 100 * MyBase .Count)

           
For i As Integer = 0 To MyBase .Count - 1
               breadSBuilder.Append( MyBase .Pop)
               
If MyBase .Count > 0 Then breadSBuilder.Append( " &#187 " )
           
Next i

           
Return breadSBuilder.ToString()
       
End Function

        Public Overloads Sub Add( ByVal Category As CategoryRow)
           Add(
" /category/? " & Category.ID, Category.Category, Category.Description)
       
End Sub

    End Class

Recent Blog Posts

See all of the blog posts