GridView nie rebinding właściwie po odsłonie

Mam GridView, który ma IDSourceID wskazujący na ObjectDataSource. Obiekt ObjectDataSource wskazuje metodę zwracającą IQueryable LINQ za pomocą właściwości TypeName, SelectMethod i SelectCountMethod formantu ObjectDataSource. Zdarza się, że dane ładują się prawidłowo z góry. Jednak w przypadku postbacku, jeśli usunę wiersze z GridView i spróbuję ponownie powiązać przy użyciu jawnego GridView.DataBind (), to nie działa. Wiem, że LINQ zwraca poprawne rowcount i takie, ponieważ wywołałem metodę countmethod i zwraca ona poprawne rowcount. Oto krótki przykład:

<asp:GridView ID="TestGridView" runat="server" PageSize="20" 
    AutoGenerateColumns="false" AllowPaging="true" 
    AllowSorting="false" DataSourceID="TestDataSource">
    <Columns>
        ...
    </Columns>
</asp:GridView>

<asp:ObjectDataSource ID="TestDataSource" runat="server" 
    EnablePaging="true" SelectCountMethod="GetDetailCount" 
    SelectMethod="GetDetails" TypeName="MyApp.PageClass" />

Próbowałem dodać przycisk i dodać TestGridView.DataBind (); metoda do tego. Próbowałem dodać go do zdarzenia Page_PreRender. Bez względu na to, co próbuję, nie działa.

Jak ktoś zasugerował poniżej, próbowałem przenieść go do strony Page_Load i nie iść. Oto szorstki przykład mojego kodu:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        // Set "initial" query parameters, then ...
        BindData();
    }
}

private void BindData()
{
    // EDITED: Removed the code below since I'm not looking to delete the
    //         rows from the database, but rather get the GridView to rebind
    //         which its not.
    ////Remove all current rows from the GridView
    //int colCount = TestGridView.Rows.Count;
    //for (int x = 1; x <= colCount; x++)
    //{
    //    TestGridView.DeleteRow(x);
    //}

    // Bind GridView to the ObjectDataSource
    TestGridView.DataBind();
}

protected void RegenerateImageButton_Click(object sender, ImageClickEventArgs e)
{
    // Set "updated" query parameters, then ...
    BindData();
}

questionAnswers(6)

yourAnswerToTheQuestion