Как передать переменные в ASP.NET PostBack? - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь передать переменные обратно на веб-страницу ASP.NET с помощью PostBack. Переменные состояния для нажатий кнопок хранятся в ViewState. Проблема в том, что мне нужно дважды нажать кнопку, прежде чем измененный статус будет отправлен на страницу.

ViewState читается Page_Load:

protected void Page_Load (object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        ViewState["Print"] = "Small";
        Response.Write ("Status: " + ViewState["Status"].ToString());
    }
    else
        Response.Write ("Status: " + ViewState["Status"].ToString());
}

ViewState для нажатия кнопки устанавливается:

protected void ImageButton_LargeStatus_Click (object sender, ImageClickEventArgs e)
{
    ViewState["Status"] = "Large";
}

Почему мне нужно дважды нажать кнопку ImageButton, чтобы изменить ViewState?

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2018

Потому что в первый раз вы обновляете ViewState с неверным ключом ...

Заменить ниже строки

ViewState ["Print"] = "Small";

с

ViewState ["Status"] = "Small";

...