'Why am I getting an error while implementing Implement Paging in asp.net gridview?

I get an error:

The data source does not support server-side data paging.

in the GVbind method: GridView.DataBind();

Why do I get this error?

I faced this issue when I added display data method and page index changing

public partial class WebForm1 : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection("Data Source=MERIH-PC;Initial Catalog=aspidus;Integrated Security=True");

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GVbind();
        }
    }

    void clear()
    {
        txtName.Text = "";
        txtPhone.Text = "";
        txtAdd.Text = "";
    }

    protected void btnInsert_Click(object sender, EventArgs e)
    {
        con.Open();
        SqlCommand cmd = new SqlCommand(@"INSERT INTO [dbo].[idus] VALUES ('" + txtName.Text + "', '" + txtPhone.Text + "', '" + txtAdd.Text + "')", con);

        int t = cmd.ExecuteNonQuery();

        if (t > 0)
        {
            Response.Write("<script>alert('Data inserted successfully') </script>");
            con.Close();
        }

        GVbind();
        clear();
    }

    protected void GVbind()
    {
        con.Open();
        SqlCommand cmd = new SqlCommand("select * from [dbo].[idus]", con);
        SqlDataReader dr = cmd.ExecuteReader();

        if (dr.HasRows == true)
        {
            GridView1.DataSource = dr;
            GridView1.DataBind();
        }
    }

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        GVbind();
    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int ID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
        string name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
        string phone = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
        string address = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;

        con.Open();
        SqlCommand cmd = new SqlCommand("update [dbo].[idus] set name='" + name + "', phone='" + phone + "', address='" + address + "' where ID = '" + ID + "'", con);

        int t = cmd.ExecuteNonQuery();

        if (t > 0)
        {
            con.Close();
            Response.Write("<script>alert('Data has been updated') </script>");
            GridView1.EditIndex = -1;
            GVbind();
        }
    }

    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        GVbind();

    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        con.Open();
        int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
        SqlCommand cmd = new SqlCommand("delete from [dbo].[idus] where ID='" + id + "'", con);

        int t = cmd.ExecuteNonQuery();

        if (t > 0)
        {
            con.Close();
            Response.Write("<script>alert('Data has been deleted') </script>");
            GridView1.EditIndex = -1;
            GVbind();
        }
    }

    protected void DisplayData()
    {
        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter("select * from [dbo].[idus]", con);

        con.Open();
        da.Fill(dt);
        con.Close();

        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

    protected void GridView1_PageIndexChanging1(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GVbind();
    }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source