Поля уровня класса не сохраняются между обратными передачами. Используйте коллекцию состояний сеанса для сохранения значений. Для сохраняющихся элементов управления вы можете использовать <asp:PlaceHolder />
.
EDIT:
Если вы используете HiddenField
, чтобы просто сохранить одно значение и получить доступ со стороны сервера, и если к нему нет доступа из клиентского скрипта, вы можете сделать что-то подобное.
Удалить список классов.
if (!IsPostBack || triggeredRefresh.Value == "1")
{
Session["someValueKey"] = 0;
}
else if ( triggeredCheck.Value == "1" )
{
var x = Convert.ToInt32(Session["someValueKey"]);
}
если вам нужен список значений, тогда вы можете сделать
if (!IsPostBack || triggeredRefresh.Value == "1")
{
Session["someValueKey"] = new List<int>{100,200};
}
else if ( triggeredCheck.Value == "1" )
{
var x = Session["someValueKey"] as List<int>();
}
если вам нужно, чтобы он был элементом управления (для доступа из клиентского скрипта), вы можете сделать
if (!IsPostBack || triggeredRefresh.Value == "1")
{
HiddenField hiddenField = new HiddenField();
hiddenField.ID ="hiddenField1";
hiddenField.Value = "0";
placeHolder1.Controls.Add(hiddenField);
}
else if ( triggeredCheck.Value == "1" )
{
HiddenField hiddenField = placeHolder1.FindControl("hiddenField1") as HiddenField;
var x = Convert.ToInt32(hiddenField.Value);
}