Gridview inside UpdatePanel Deleting Records, Updating Wrong Rows

I have several gridviews each inside their own UpdatePanels. I have buttons that filter the data but have noticed unusual updating and deletions at times that I cannot detect the source of. One thing I have isolated is that this occurs when I sort a gridviews data in one UpdatePanel and then try to update another UpdatePanel.

(My gridviews all get their data from the same DataLoad procedure that populates each gridview based on different Linq queries.)

I resolved most of the unusual updates by calling .Update() on all UpdatePanels after my sorting function so all gridviews are "refreshed". But then there are still some instances were data is getting updated and I can not isolate the source.

It looks like data outside one UpdatePanel is actually being updated "behind the scenes" and only cached data is on the screen and then when I edit what is on the screen, wrong data gets updated because it was not refreshed.

I am guessing that my sorting strategy is incorrect as I am sorting all gridviews instead of just that specific gridview when user clicks a column header.

Here is my sorting procedure that is called by each gridview:

protected void TaskGridView_Sorting(object sender, GridViewSortEventArgs e)
    string sortExp = ViewState["SortExpression"] as string;     
    string sortDir = ViewState["SortDirection"] as string;
    if(sortDir == "asc" & sortExp == e.SortExpression.ToString())
        ViewState["SortDirection"] = "desc";
        ViewState["SortDirection"] = "asc";
    ViewState["SortExpression"] = e.SortExpression.ToString();

    if(searchCol != "" && searchText != "")
        DataGrid_Load(DAL.Search_reg_log(OrgText.Text, searchText, searchCol), "reg");
        DataGrid_Load(DAL.reg_log(HeadText.Text, OrgText.Text), "reg");     



I am new to using Ajax and UpdatePanels and would like any direction on resolving this situation.