在 DataGrid 中更改页面索引后全局变量失去其值

Global Variable loses its value after page index changed in DataGrid

我的问题是失去 value.I 具有标准 asp.net 分页的 DataGrid。当我更改页面索引时,名为 "id" 的全局变量会丢失其值。请帮助我。

int id = 0;

void Payments()
{
    radioBtnList = GetData();
    radioBtnList.DataBind();
}

protected void Page_Load(object sender, EventArgs e)
{
    Payments();
    Response.Write(id); //  I get value 0 :(
}

protected void radioBtnList_Changed(object sender, EventArgs e)
{
    id = int.Parse(radioBtnList.SelectedItem.Text);
}

protected void dgw_pagechange(object source, DataGridPageChangedEventArgs e)
{
    dgw.CurrentPageIndex = e.NewPageIndex;
    dgw.DataBind();
}

与其将 ID 存储在页面更改时将重新加载的页面中,不如将其存储在将在回发期间持续存在的某个位置。

示例可能是:

  • 会话对象
  • 一个数据库
  • 一个文本文件

您可以像这样使用 ViewState。

int id = 0;
void Payments ()
{
    radioBtnList = GetData();
    radioBtnList.DataBind ();
}

protected void Page_Load (object sender, EventArgs e)
{
  Payments();
  Response.Write(ViewState["id"]);
}

protected void radioBtnList_Changed (object sender, EventArgs e)
{
   id = int.Parse (radioBtnList.SelectedItem.Text);
   ViewState["id"]=id;
}


protected void dgw_pagechange (object source, DataGridPageChangedEventArgs e)
{
    dgw.CurrentPageIndex = e.NewPageIndex;
    dgw.DataBind();
}