I'll suggest you try the winform settings, which you can access via
Settings.Default.[GRID_VIEW_COLUMN_ORDER];
You can save the order of the gridview in a List or Dictionary then tie it to the current user like below
Dictionary<string, string> gridRowOrderDictionary = new Dictionary<string, string>();
protected void gridViewRowOrderSet(object sender, EventArgs e)
{
gridRowOrderDictionary.Add("Gridorder1", "Value1");
gridRowOrderDictionary.Add("Gridorder2", "Value2");
gridRowOrderDictionary.Add("Gridorder3", "Value3");
Settings.Default.GridRowOrder = gridRowOrderDictionary;
}
Then u get that