Что такое ViewState в ASP.NET?

Может ли кто-нибудь объяснить ViewState (в ASP.NET) как можно короче?


person user8965    schedule 16.04.2010    source источник
comment
Если вам нужна дополнительная информация, ознакомьтесь со статьей MSDN Understanding ASP.NET View State msdn .microsoft.com/en-us/library/ms972976.aspx   -  person Tomasz Jaskuλa    schedule 16.04.2010
comment
Кроме того, viewstate помещает неприятную скрытую строку на все ваши веб-страницы?   -  person Fenton    schedule 16.04.2010
comment
См. Обзор ASP.NET ViewState !альтернативный текст   -  person KMån    schedule 16.04.2010


Ответы (4)


ViewState — это механизм, который позволяет сохранять значения состояния при обратной передаче страницы.

Сеть не имеет состояния. Но в ASP.NET состояние страницы сохраняется на самой странице автоматически. Это делается с помощью ViewState. В ViewState значения кодируются по основанию 64 и сохраняются в скрытых элементах управления.

Когда вы просматриваете исходный код страницы (в своем браузере) страницы, использующей ViewState, вы можете увидеть этот скрытый ввод ViewState, который будет выглядеть примерно так:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTM1ODM3Nj......." /> 

Это единственное скрытое поле содержит все значения состояния просмотра для всех элементов управления страницы.

Поскольку ViewState (по умолчанию) отправляется в клиентский браузер, а затем возвращается на сервер в виде скрытого элемента управления вводом на вашей странице, хранение значительного объема данных в ViewState может увеличить размер вашей страницы и повлиять на ее производительность.

Чтобы отключить ViewState для элемента управления, вы можете установить для свойства EnableViewState значение false.

person MAS1    schedule 16.04.2010

Короче говоря,

  1. Состояние сеанса для страницы
  2. Позволяет контролировать повторное заполнение при обратной передаче
  3. Зашифровано
  4. Помещено в скрытое поле
  5. Можно отключить с помощью тега enableViewState.
person kemiller2002    schedule 16.04.2010

Из здесь:

ViewState позволяет сохранять состояние объектов (сериализуемых) в скрытом поле на странице. ViewState передается клиенту и обратно на сервер и не сохраняется на сервере или в каком-либо другом внешнем источнике. ViewState используется для сохранения состояния объектов на стороне сервера между постбэками.

person Oded    schedule 16.04.2010

СНАЧАЛА МЫ СОЗДАЕМ ФУНКЦИЮ ДЛЯ СОЗДАНИЯ VIEWSTATTE
dgpayment — это gridview

private void BindGrid(int rowcount)
    {
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("AccName", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("Remarks", typeof(String)));
        if (ViewState["CurrentData"] != null)
        {
        for (int i = 0; i < rowcount + 1; i++)
        {
        dt = (DataTable)ViewState["CurrentData"];
        if (dt.Rows.Count > 0)
        {
        dr = dt.NewRow();
        dr[0] = dt.Rows[0][0].ToString();
        }
        }
        dr = dt.NewRow();
        dr[0] = txtAccntName.Text;
        dr[1] = txtRemark.Text;
        dt.Rows.Add(dr);
        }
        else
        {
        dr = dt.NewRow();
        dr[0] = txtAccntName.Text;
        dr[1] = txtRemark.Text;
        dt.Rows.Add(dr);
        }
        if (ViewState["CurrentData"] != null)
        {
        dgPayment.DataSource = (DataTable)ViewState["CurrentData"];
            dgPayment.DataBind();
        }
        else
        {
        dgPayment.DataSource = dt;
        dgPayment.DataBind();
        }
 ViewState["CurrentData"] = dt;

 }

ПОСЛЕ ЭТОГО ДОБАВЬТЕ КОД НА КНОПКУ ДОБАВИТЬ

 protected void btnADD_Click(object sender, EventArgs e)
    {
    if (ViewState["CurrentData"] != null)
    {
    DataTable dt = (DataTable)ViewState["CurrentData"];
    int count = dt.Rows.Count;
    BindGrid(count);
    }
    else
    {
    BindGrid(1);
    }
    }
person samir    schedule 27.03.2016