I think you are missing ispostback check in pageload. ispostback check whether is page is loading first time or it just a postback from a control.
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
bind_grid()
}
}
private void bind_grid()
{
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "viewuser")
{
Response.Redirect("userlist.aspx");
}
}
I think this should work for you. If it helps please mark this as answer.