Setting a cookie in ASP.net based on a drop down list

I'm taking my first attempt at setting a cookie in ASP.net.  I have a drop down list that lists all users of the application.  Once the user has made their selection from the drop down list, they have the option of clicking a checkbox.  When they click the checkbox, I would like for the value of the dropdownlist to be saved as a cookie.  I would like to use that value to set the default value of the drop down list.  I'm not sure what kind of event to put my code in or even if the code is correct.  I've pasted it below.  Thank you for your help.
Dim currentofficer As DropDownList = DirectCast(FindControl("DropDownOfficer"), DropDownList)
        If currentofficer.SelectedValue <> "All Officers" Then
            Response.Cookies("PipelineCookie")("DefaultOfficer") = currentofficer.Text
        Else
        End If

Open in new window

ryanvb83Asked:
Who is Participating?
 
crazymanConnect With a Mentor Commented:
sorry my vb sucks, try this.
you could set autopostback = true on your dropdown
you may also want to control the cookie expiration a little better...
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Dim cook As HttpCookie = Request.Cookies("PipelineCookie")
            If Not cook Is Nothing Then
                Dim s As String = cook("DefaultOfficer")
                If Not String.IsNullOrEmpty(s) Then
                    DropDownList1.SelectedValue = s
                End If
            End If
            
 
        End If
    End Sub
 
    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
 
        Response.Cookies("PipelineCookie")("DefaultOfficer") = DropDownList1.SelectedValue
    End Sub

Open in new window

0
 
crazymanCommented:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Dim s As String = Response.Cookies("PipelineCookie")("DefaultOfficer")
            If Not String.IsNullOrEmpty(s) Then
                DropDownList1.SelectedValue = s
            End If
 
        End If
    End Sub
 
    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
 
        Response.Cookies("PipelineCookie")("DefaultOfficer") = DropDownList1.SelectedValue
    End Sub

Open in new window

0
 
ryanvb83Author Commented:
Awesome.  That worked great after I turned on AutoPostBack for the checkbox control.  How do I set the cookie to never expire?
0
 
crazymanConnect With a Mentor Commented:
something like...

Response.Cookies("PipelineCookie")("DefaultOfficer").Expires = DateTime.Now.AddYears(50)
0
 
ryanvb83Author Commented:
Perfect.  Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.