2015-10-07 2 views
1

Заранее благодарим за просмотр сообщения. Я новичок в файлах cookie. Я решил, что с ними будет легче работать, если я создам свойство для каждого ключа коллекции. Я создал набор частных свойств для обработки/установки файлов cookie, поэтому я сохраняю состояние управления между страницами. Вот что у меня есть:Cookies как собственность в asp.net (vb)

Private Property CK_Settings(pKey As String) As String 
    Set(value As String) 
     If Request.Cookies("Settings") Is Nothing Then 
      Response.Cookies.Add(New HttpCookie("Settings")) 
     End If 

     Response.Cookies("Settings").Item(pKey) = value 
    End Set 
    Get 
     If Request.Cookies("Settings") Is Nothing Then 
      Response.Cookies.Add(New HttpCookie("Settings")) 
     End If 

     Return Request.Cookies("Settings").Item(pKey) 
    End Get 
End Property 

Private Property CK_rb1 As String 
    Set(value As String) 
     CK_Settings("rb1") = value 
    End Set 
    Get 
     If CK_Settings("rb1") IsNot Nothing Then 
      Return CK_Settings("rb1") 
     Else 
      Return Nothing 
     End If 
    End Get 
End Property 

Private Property CK_Jobs As String 
    Set(value As String) 
     CK_Settings("Jobs") = value 
    End Set 
    Get 
     If CK_Settings("Jobs") IsNot Nothing Then 
      Return CK_Settings("Jobs") 
     Else 
      Return Nothing 
     End If 
    End Get 
End Property 

Private Property CK_rb2 As String 
    Set(value As String) 
     CK_Settings("rb2") = value 
    End Set 
    Get 
     If CK_Settings("rb2") IsNot Nothing Then 
      Return CK_Settings("rb2") 
     Else 
      Return Nothing 
     End If 
    End Get 
End Property 

Private Sub SetCookies() 
    Me.CK_rb1 = Me.rb1.SelectedIndex.ToString 
    Me.CK_Jobs = Me.ddlJobs.SelectedIndex.ToString 
    Me.CK_rb2 = Me.rb2.SelectedIndex.ToString 
End Sub 

Private Sub GetCookies() 
    If Me.CK_rb1 IsNot Nothing Then 
     Me.rb1.SelectedIndex = Me.CK_rb1.ToInteger 
    End If 
    If Me.CK_rb2 IsNot Nothing Then 
     Me.rb2.SelectedIndex = Me.CK_rb2.ToInteger 
    End If 
    Me.ddlJobs.SelectedIndex = Me.CK_Jobs.ToInteger 
End Sub 

У меня нет ошибок компилятора/времени выполнения, но файлы cookie не устанавливаются вообще. Я также добавил 2 подставки для упрощения настройки/получения. Я нашел this при исследовании онлайн, но я не думаю, что это актуально. ЛЮБАЯ помощь вообще НАДЕЕТСЯ!

UPDATE

Я был в состоянии получить RadioButtonList (ОХ), чтобы сохранить состояние. У меня возникли проблемы с сохранением состояния dropdownlist (ddl). Стоит отметить, что выпадающий список - это настраиваемый элемент управления. Кроме того, я изменил имена на что-то меньшее из последствий.

ответ

0

В раскрывающемся списке реализован переопределенный метод, который я учитывал. Как только я понял это, я смог заставить ddl сохранить состояние.