programatically creating GridView but postback when update clicked prevents RowUpdating from being called
===

I'm just having an issue I'm hoping someone will be able to give me a few pointers. I have an asp page which is programatically creating multiple gridviews on the same aspx page depending on a variable set of values retrieved from the database. 

As I am programmatically creating the GridView in code behind, I have to create the gridview gridviews each time the page loads, on postback, oninit etc. I currently create the gridviews within the OnInit function of the page. This all works fine except for when the user goes into row edit mode then clicks the Update (row update) button/link. This forces a postback on the grid which reloads the grid values from database before their values are updated thus preventing the RowUpdating event from ever launching. How do I get around this? I have tried capturing the command selected via the RowCommand event but this event only gets fired after the postback, so the oninit function gets called first before the Rowcommand so the command name I've captured is of little use to me.

I am creating the GridView as follows in the Oninit function

        GridViewLineItem = New GridView
        If bEnableEdit = True Then
            GridViewLineItem.AutoGenerateEditButton = True
        End If

        If bEnableDelete = True Then
            GridViewLineItem.AutoGenerateDeleteButton = True
        End If

        GridViewLineItem.AutoGenerateColumns = False
        GridViewLineItem.EnableViewState = True
        GridViewLineItem.Font.Name = "Arial"
        GridViewLineItem.Font.Size = 8
        GridViewLineItem.ForeColor = Drawing.Color.Black
        GridViewLineItem.BackColor = Drawing.Color.White
        GridViewLineItem.BorderColor = Drawing.Color.LightGray
        GridViewLineItem.BorderStyle = BorderStyle.None
        GridViewLineItem.BorderWidth = 1
        GridViewLineItem.CellPadding = 4
        GridViewLineItem.AlternatingRowStyle.BackColor = Drawing.Color.White
        GridViewLineItem.FooterStyle.BackColor = Drawing.Color.BurlyWood
        GridViewLineItem.HeaderStyle.BackColor = Drawing.Color.DarkGray
        GridViewLineItem.HeaderStyle.Font.Bold = True
        GridViewLineItem.HeaderStyle.ForeColor = Drawing.Color.Black
        GridViewLineItem.PagerStyle.BackColor = Drawing.Color.Beige
        GridViewLineItem.PagerStyle.ForeColor = Drawing.Color.Black
        GridViewLineItem.PagerStyle.HorizontalAlign = HorizontalAlign.Right
        GridViewLineItem.RowStyle.BackColor = Drawing.Color.Beige
        GridViewLineItem.ID = "LineItemGridView" + strItemID

        strCBItemID = strItemID



        AddHandler GridViewLineItem.RowEditing, AddressOf GridViewLineItem_RowEditing
        AddHandler GridViewLineItem.RowCancelingEdit, AddressOf GridViewLineItem_RowCancelingEdit
        AddHandler GridViewLineItem.RowDataBound, AddressOf GridViewLineItem_RowDataBound
        AddHandler GridViewLineItem.RowUpdating, AddressOf GridViewLineItem_RowUpdating
        AddHandler GridViewLineItem.PageIndexChanging, AddressOf GridViewLineItem_PageIndexChanging
        AddHandler GridViewLineItem.PreRender, AddressOf GridViewLineItem_PreRender
        AddHandler GridViewLineItem.PageIndexChanged, AddressOf GridViewLineItem_PageIndexChanged
        AddHandler GridViewLineItem.RowDeleting, AddressOf GridViewLineItem_OnDeleting
        AddHandler GridViewLineItem.RowCommand, AddressOf GridViewLineItem_RowCommand



        'bind data source
        dt = New DataTable
        oda = New OleDb.OleDbDataAdapter
        oda.Fill(dt, rsGroup)
        GridViewLineItem.DataSource = dt
        GridViewLineItem.DataBind()

        'Add gridview to page    

        tCell.Controls.Add(GridViewLineItem)
        tRow.Cells.Add(tCell)
        TableLineItem.Rows.Add(tRow)


        LineItemPanel.Controls.Add(TableLineItem)
        LineItemPanel.BorderStyle = BorderStyle.Solid
        LineItemPanel.BorderWidth = 3
        LineItemPanel.BorderColor = Drawing.Color.DarkGray

        tGroupRow = New TableRow
        tGroupCell = New TableCell

        tGroupCell.ColumnSpan = TableGroupDetails.Rows.Item(0).Cells.Count
        tGroupCell.Controls.Add(LineItemPanel)

        tGroupRow.Cells.Add(tGroupCell)


        TableGroupDetails.Rows.Add(tGroupRow)


Can someone plese give me some pointers in how I should skip the databind of the gridview when the user clicks on the row update? I can't tie the Gridview's Databind indisriminately around a page.IsPostback = false as if I do this, The grid will only be loaded once and another other valid postsbacks such as when the user clicks on to get into row edit mode would cause an empty grid.

Thanks