Imports System.Data
Imports System.Data.SqlClient
Partial Class UserControl_DropDownSelect
    Inherits System.Web.UI.UserControl
    Shared val1, val2, val3 As String
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            loadcategory()
            Label1.Text = ""
            Label1.Visible = False
            Label2.Text = ""
            val1 = ""
            val2 = ""
            val3 = ""
            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
    Public Sub fillddl2(ByVal catid As String)
        Label1.Visible = False

        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.Visible = True
            Label1.Text = ddl3.SelectedItem.Text & "  Is Last Gategory..!!!"
            Session("CategoryId") = ddl3.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

    Public Sub fillddl3(ByVal catid As String)
        Label1.Visible = False

        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.Visible = True
            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

    Public Sub loadcategory1(ByVal catid As String)
        Try
            Label1.Visible = False
            ddl1.Items.Clear()
            ddl1.Items.Insert(0, New ListItem("Select Sub Cat", "0"))
            Dim con As New SqlConnection
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")
            Dim Str As String
            Str = "select * from Category_Master where Category_ParentId ='" & catid & "'"
            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
                    ddl1.Items.Add(New ListItem(dr(2), dr(0)))
                End While
            Else
                Label1.Visible = True
                Label1.Text = ddl3.SelectedItem.Text & "  Is Last Category...!!!"
                Session("CategoryId") = ddl3.SelectedItem.Value
                'Response.Redirect("ProductMaster.aspx?CategoryId=" & ddl3.SelectedItem.Value)
                'Response.Redirect("SearchProduct.aspx?Prod_Kid=" & ddl3.SelectedValue.ToString.Trim)
            End If
            con.Close()
        Catch ex As Exception
            ex.Message.ToString()
        End Try
    End Sub

    Protected Sub ddl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl1.SelectedIndexChanged

        Label2.Text = ""
        Label1.Text = ""
        If ddl1.SelectedItem.Text = "----Select Category----" Then
            ddl2.Items.Clear()
            ddl3.Items.Clear()
        Else
            fillddl2(ddl1.SelectedValue.ToString.Trim)
            ddl3.Items.Clear()
            'val1 = ddl1.SelectedItem.Text & "  >>  "

            Label2.Text = ddl1.SelectedItem.Text & "  >>  "
            val1 = Label2.Text
        End If


    End Sub

    Protected Sub ddl2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl2.SelectedIndexChanged
        fillddl3(ddl2.SelectedValue.ToString.Trim)
        val2 = ddl2.SelectedItem.Text & "  >>  "
        If val3 = "" Then
            Label2.Text = val1 & ddl2.SelectedItem.Text & "  >>  "
        Else
            Label2.Text = val3 & "  >>  " & ddl2.SelectedItem.Text & "  >>  "
        End If
        val2 = Label2.Text

    End Sub

    Protected Sub ddl3_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl3.SelectedIndexChanged
        If Label1.Text = "" Then

        Else

        End If
        fillddl2(ddl3.SelectedValue.ToString.Trim)
        val3 = ddl3.SelectedItem.Text & "  >>  "
        Label2.Text = val2 & ddl3.SelectedItem.Text & "  >>  "
        val3 = Label2.Text
        'loadcategory1(ddl3.SelectedValue.ToString.Trim)
    End Sub
End Class
