Включено ли состояние сеанса на вашем сайте?Его можно отключить несколькими способами, на уровне страницы или даже в файле web.config.
Вы также должны знать, что событие Page_Load запускается для каждого запроса, прежде чем произойдет автоматическая обратная передача флажка.Я также немного сбит с толку относительно того, что вы пытаетесь сохранить: я предполагаю, что в каждой строке есть флажок, но кажется, что вы пытаетесь сохранить значение set / not-set в одной переменной сеанса.Как вы различаете, какие были выбраны, а какие нет?:)
Обновление: Хорошо, давайте попробуем немного очистить код.Сначала создайте свойство для доступа к значению сеанса:
Private Property ShowHiddenRotations As Boolean
Get
If Not Session("ShowHiddenRotations") Is Nothing Then
Return CType(Session("ShowHiddenRotations"), Boolean)
Else
Return False
End If
End Get
Set(value As Boolean)
Session("ShowHiddenRotations") = value
End Set
End Property
Если вы используете это значение на других страницах, я бы порекомендовал переместить его в отдельный класс.
Тогда мы можем уменьшить ваш другой код до чего-то более близкого к этому:
Protected Sub ShowHiddenCheckBoxChange(ByVal sender As Object, ByVal e As EventArgs)
ShowHiddenRotations = ShowHiddenCheckbox.Checked
End Sub
И ...
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If not Page.IsPostBack
' Load your data, better stick it in a seperate sub...
ShowHiddenCheckBox.Checked = ShowHiddenRotations
else
' This section is executed BEFORE any control methods are run, i.e. ShowHiddenCheckBoxChange
end if
End Sub
Я полагаю, что ваша проблема действительно простопорядок, как вещи называются на вашей странице.Что происходит, когда вы отлаживаете через него?