Kategori : Asp.Net

Asp.net İle Sınırsız Kategori 12
Ağustos
     
 
Bazen yaptıgımız sistemlerde sınırsız kategori sistenmine ihitiyaç duymakatayız . Birkaç yöntem kullanarak sınırsız kategori uygulamasını yapabiliriz.
Bunun için ilk önce veritabanımı oluşturmam gerekir ben mysql kullanarak oluşturuyorum tercih sizin.
DROP TABLE IF EXISTS `menuler`;
CREATE TABLE `menuler` (
 `alt_id` int(10) unsigned NOT NULL auto_increment,
 `ana_id` int(10) unsigned default NULL,
 `menuadi` varchar(45) default NULL,
 PRIMARY KEY (`alt_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin5;
 
Tablomuzu oluşturduktan sonra artık kodlama tarafına geçebiliriz.
 
 
Öncelik olarak design tarafımızda bir adet treeview oluşturuyoruz.
   <asp:TreeView 
                ID="TreeView1"
                ExpandDepth="0"
                PopulateNodesFromClient="true"
                ShowLines="true"
                ShowExpandCollapse="true"
                runat="server" />
   
Sonra code behind tarafına geçerek kodlarımızı yazmaya başlayabiliriz.
 ' baglantımı web.config dosyasından alıyorum
    Dim cumle As String = ConfigurationManager.ConnectionStrings("localhost").ConnectionString
    Dim baglanti As New OdbcConnection(cumle)
 
 
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
   
       If Not Page.IsPostBack Then ustdizinidoldur()
 
    End Sub
 
    Private Sub ustdizinidoldur()
 ' veritabanımıza baglanarak üstid si 0 olan üst kategorimizi çekliyoruz 
 
        Dim komut As New OdbcCommand("select alt_id,menuadi,(select count(*) FROM menuler " _
        & "WHERE ana_id=sc.alt_id) altnodecount FROM menuler sc where ana_id=0", baglanti)
 
        Dim da As New OdbcDataAdapter(komut)
        Dim dt As New DataTable()
        da.Fill(dt)
 
        nodlaridoldur(dt, TreeView1.Nodes)
 
    End Sub
 
 
 
    Private Sub altdizinidoldur(ByVal ustid As Integer, ByVal parentNode As TreeNode)
 
 ' veritabanımıza baglanarak üstidye ait olan alt kategorilerimizi çekliyoruz
        Dim komut As New OdbcCommand("select alt_id,menuadi,(select count(*) FROM menuler " _
        & "WHERE ana_id=sc.alt_id) altnodecount FROM menuler sc where ana_id=?", baglanti)
        komut.Parameters.AddWithValue("?", ustid)
 
        Dim da As New OdbcDataAdapter(komut)
        Dim dt As New DataTable()
        da.Fill(dt)
 
        nodlaridoldur(dt, parentNode.ChildNodes)
    End Sub
 
 
    Private Sub nodlaridoldur(ByVal dt As DataTable, ByVal nodes As TreeNodeCollection)
 
        For Each dr As DataRow In dt.Rows
            Dim tn As New TreeNode()
            tn.Text = dr("menuadi").ToString()
            tn.Value = dr("alt_id").ToString()
            nodes.Add(tn)
 
            'alt kategorileri dolduruyoruz
            tn.PopulateOnDemand = (CInt(dr("altnodecount")) > 0)
 
        Next
 
    End Sub
 
    Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate
        altdizinidoldur(CInt(e.Node.Value), e.Node)
    End Sub
 
Sınırsız kategori sistemimizide oluşturmuş olduk.
 
 

  Yorumlar
 
    Henüz Yorum Yapılmamıştır

  Yorum Yaz
 
     
   Ad Soyad    
   E- Posta