Imports System.Data
Imports System.Data.SqlClient
Partial Class UserControl_DropDownSelecttt
    Inherits System.Web.UI.UserControl
    Shared val1, val2, val3 As Boolean
    Shared i As Integer
    Shared val(10) As String
    Shared ddl2Text As String

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            loadcategory()
            i = 0
            Label1.Text = ""

            Label2.Text = ""
            val1 = True
            val2 = True
            val3 = True
            Label2.Text = ""
        End If
    End Sub


    Private Sub loadcategory()
        Try
            ddl1.Items.Clear()
            ddl1.Items.Add(New ListItem("----Select Category----"))
            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim Str As String
            Str = "select Category_kid,Category_Name from Category_Master where Category_ParentId='Root Category' order by category_name asc"
            If con.State = Data.ConnectionState.Open Then
                con.Close()
            End If
            con.Open()
            Dim cmd As New SqlCommand(Str, con)
            Dim dr As SqlDataReader = cmd.ExecuteReader
            If dr.HasRows Then
                While dr.Read
                    Dim str1 As String
                    str1 = dr(1).ToString()
                    ddl1.Items.Add(New ListItem(dr(1), dr(0)))
                End While
            Else
                Response.Redirect("")
            End If
            con.Close()
        Catch ex As Exception
            ex.Message.ToString()
        End Try
    End Sub


    Protected Sub ddl1_SelectedIndexChanged1(ByVal sender As Object, ByVal e As System.EventArgs)
        i = 0
        val1 = True
        val2 = True
        val3 = True
        ddl2.Enabled = True
        ddl3.Enabled = True
        Dim j As Integer
        For j = 0 To 10
            val(i) = Nothing
        Next
        If ddl1.SelectedItem.Text = "----Select Category----" Then
            Label2.Text = ""
            Label1.Text = ""
            ddl2.Items.Clear()
            ddl3.Items.Clear()
        Else
            fillddl2(ddl1.SelectedItem.Value)
            Label2.Text = ""
            val(i) = ddl1.SelectedItem.Text
            Label2.Text = val(i) & "  >>  "
            ddl3.Items.Clear()
        End If
    End Sub

    Public Sub fillddl2(ByVal catid As String)

        Label1.Text = ""
        Dim con1 As New SqlConnection
        con1.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
        Dim Strr As String
        Strr = "select * from Category_Master where Category_ParentId ='" & catid & "'"
        If con1.State = Data.ConnectionState.Open Then
            con1.Close()
        End If
        con1.Open()
        Dim cmd1 As New SqlCommand(Strr, con1)
        Dim dr1 As SqlDataReader = cmd1.ExecuteReader
        If dr1.HasRows Then
            ddl2.Items.Clear()
            ddl2.Items.Insert(0, New ListItem("--Select Sub Category--", "0"))
            While dr1.Read
                ddl2.Items.Add(New ListItem(dr1(2), dr1(0)))
            End While
        Else
            'fillddl2(ddl1.SelectedItem.Value)
            'ddl2.Items.FindByText(ddl3.SelectedItem.Text).Selected = True

            Label1.Text = ddl3.SelectedItem.Text & "  Is Last Gategory..!!!"

            Session("CategoryId") = ddl3.SelectedItem.Value
            fillddl2(ddl1.SelectedItem.Value)
            'ddl3.Items.Clear()
            'Response.Redirect("ProductMaster.aspx?CategoryId=" & ddl3.SelectedItem.Value)
            'Response.Redirect("SearchProduct.aspx?Prod_Kid=" & ddl1.SelectedValue.ToString.Trim)
        End If
        con1.Close()
    End Sub

    Protected Sub ddl2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

        If Label1.Text <> "" Then
            Label2.Text = ""
            'i = 1
            val2 = True
            val3 = True
            Dim j As Integer
            For j = i + 1 To 10
                val(j) = Nothing
            Next
        End If


        If ddl2.SelectedItem.Text = "--Select Sub Category--" Then
            Label1.Text = ""
            ddl3.Items.Clear()
        Else

            Dim con1 As New SqlConnection
            con1.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim Strr As String
            Strr = "select * from Category_Master where Category_ParentId ='" & ddl2.SelectedItem.Value & "'"
            If con1.State = Data.ConnectionState.Open Then
                con1.Close()
            End If
            con1.Open()
            Dim cmd1 As New SqlCommand(Strr, con1)
            Dim dr1 As SqlDataReader = cmd1.ExecuteReader
            If dr1.HasRows Then

                fillddl3(ddl2.SelectedItem.Value)

            Else
                'fillddl3(ddl2.SelectedItem.Value)
                Label1.Text = ddl2.SelectedItem.Text & "  Is Last Category...!!!!"
                Label1.Text &= "<br>"
                Label1.Text &= "For futher search go through the main Category !!!"
                Session("CategoryId") = ddl2.SelectedItem.Value
                'ddl3.Items.Clear()
                'ddl3.Items.Insert(0, New ListItem("Null", "0"))
                ddl3.Enabled = False
                ddl2.Enabled = False

                'ddl2.Items.Clear()
                'Response.Redirect("ProductMaster.aspx?CategoryId=" & ddl2.SelectedItem.Value)
                '        Response.Redirect("SearchProduct.aspx?Prod_Kid=" & ddl2.SelectedValue.ToString.Trim)
            End If


            If dr1.HasRows Then
                If val2 = True Or ddl3.SelectedItem.Value = "0" Then
                    i = 1
                    val2 = False
                Else
                    i += 1
                End If
            Else
                If val2 = True Then
                    i = 1
                    val2 = False
                Else
                    i += 1
                End If

            End If


            'If ddl3.SelectedItem.Value = "0" Then
            'i = 1
            'val2 = False
            'Else
            'i += 1
            'End If

            con1.Close()
            Dim j As Integer
            val(i) = ddl2.SelectedItem.Text
            Label2.Text = ""
            For j = 0 To i
                Label2.Text &= val(j) & "  >>  "
            Next

        End If

    End Sub

    Public Sub fillddl3(ByVal catid As String)
        Label1.Text = ""

        Dim con1 As New SqlConnection
        con1.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
        Dim Strr As String
        Strr = "select * from Category_Master where Category_ParentId ='" & catid & "'"
        If con1.State = Data.ConnectionState.Open Then
            con1.Close()
        End If
        con1.Open()
        Dim cmd1 As New SqlCommand(Strr, con1)
        Dim dr1 As SqlDataReader = cmd1.ExecuteReader
        If dr1.HasRows Then
            ddl3.Items.Clear()
            ddl3.Items.Insert(0, New ListItem("--Select Sub-Sub Cat--", "0"))
            While dr1.Read
                ddl3.Items.Add(New ListItem(dr1(2), dr1(0)))
            End While
            ddl3.Focus()
        Else
            'fillddl3(ddl2.SelectedItem.Value)

            Label1.Text = ddl2.SelectedItem.Text & "  Is Last Category...!!!!"
            Session("CategoryId") = ddl2.SelectedItem.Value
            'ddl2.Items.Clear()
            'Response.Redirect("ProductMaster.aspx?CategoryId=" & ddl2.SelectedItem.Value)
            '        Response.Redirect("SearchProduct.aspx?Prod_Kid=" & ddl2.SelectedValue.ToString.Trim)
        End If
        con1.Close()
    End Sub


    Protected Sub ddl3_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

        If val3 = True Then
            i = 2
            val3 = False
            ddl2Text = ddl2.SelectedItem.Text
        Else
            i += 1
        End If

        If ddl3.SelectedItem.Text = "--Select Sub-Sub Cat--" Then
            Label1.Text = ""
        Else

            If val3 = False And (ddl2Text = ddl2.SelectedItem.Text Or ddl2.SelectedItem.Value = "0") Then
                i = 2
            End If

            Label1.Text = ""
            Dim con1 As New SqlConnection
            con1.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim Strr As String
            Strr = "select * from Category_Master where Category_ParentId ='" & ddl3.SelectedItem.Value & "'"
            If con1.State = Data.ConnectionState.Open Then
                con1.Close()
            End If
            con1.Open()
            Dim cmd1 As New SqlCommand(Strr, con1)
            Dim dr1 As SqlDataReader = cmd1.ExecuteReader
            If dr1.HasRows Then

                fillddl2(ddl3.SelectedItem.Value)

            Else

                Label1.Text = "<li>" & ddl3.SelectedItem.Text & "  Is Last Gategory..!!!"
                Label1.Text &= "<br>"
                Label1.Text &= "<li>" & "For futher search go through the main Category !!!"
                Session("CategoryId") = ddl3.SelectedItem.Value
                'ddl2.Items.Clear()
                'ddl2.Items.Insert(0, New ListItem("Null", "0"))
                ddl2.Enabled = False
                ddl3.Enabled = False

            End If
            con1.Close()
        End If



        Dim j As Integer

        val(i) = ddl3.SelectedItem.Text
        Label2.Text = ""
        For j = 0 To i
            Label2.Text &= val(j) & "  >>  "
        Next



    End Sub


End Class
