Search code examples
c#asp.net.netwebformsaspxgridview

Global Variable loses its value after page index changed in DataGrid


My problem is losing value.I have a DataGrid with standart asp.net pagination. When I change page index, global variable named "id" loses its value. Help me Please.

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();
}

Solution

  • You can use ViewState like this.

    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();
    }