Я настроил gridview asp.net, и когда пользователь щелкает ячейку в gridiview, он проходит серию изменений цвета фона. При первом щелчке фон ячейки становится желтым, при втором щелчке — оранжевым, при третьем — синим и т. д. Однако, когда я обновляю страницу, цвет фона снова становится белым. Мне нужно, чтобы ячейки сохраняли цвет фона, когда страница обновляется или закрывается и снова открывается.
ВБ:
Private Sub GridView1_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GridView1.RowCreated
'Changes background color on click (JavaScript)
For x As Byte = 1 To 13
e.Row.Cells(x).Attributes.Add("onclick", "toggle(this);")
Next
End Sub
JS:
function toggle(obj){
if (obj.style.backgroundColor == 'white') {
obj.style.backgroundColor = 'yellow';
} else if (obj.style.backgroundColor == 'yellow') {
obj.style.backgroundColor = 'orange';
} else if (obj.style.backgroundColor == 'orange') {
obj.style.backgroundColor = 'deepskyblue';
} else if (obj.style.backgroundColor == 'deepskyblue') {
obj.style.backgroundColor = 'lightgreen';
} else if (obj.style.backgroundColor == 'lightgreen') {
obj.style.backgroundColor = 'white';
} else {
obj.style.backgroundColor = 'white';
}}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать локальное хранилище браузера для хранения цвета фона:
Полезные ссылки:
https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Это может оказаться немного сложнее, чем вы надеетесь. Вам нужно будет как-то отправить эту информацию на сервер. Может быть через ajax или скрытое поле ввода. Данные должны содержать расположение ячейки и тип цвета.