Как сделать так, чтобы содержимое DataTable переживало конец области? - PullRequest
1 голос
/ 17 августа 2011

У меня есть DataTable, который объявлен в начале моего класса следующим образом:

private DataTable table = new TestData().FillTable();

Во всем классе я могу получить доступ к содержимому таблицы.

Однако у меня есть событие сортировки GridView, которое изменяет содержимое DataTable. В самом событии содержимое изменяется, и я подтвердил это путем отладки. Однако если я вызову таблицу из-за пределов этого метода, содержимое DataTable останется прежним, то есть новые значения будут стерты, как только закончится область действия события.

Вот код моего события сортировки:

protected void TableGridView_Sorting(object sender, GridViewSortEventArgs e)
    {
        table.DefaultView.Sort = "GroupNumber, " + e.SortExpression + GetSortDirectio(e.SortExpression);
        TableGridView.DataSource = table;
        TableGridView.DataBind();
    }

Когда я проверяю содержимое таблицы в указанном выше событии, новые значения, кажется, добавляются. Однако, если я вызываю таблицу из любого другого метода, возвращаются старые значения.

Что я могу сделать, чтобы содержимое таблицы обновлялось глобально, то есть до переменной, объявленной в начале моего класса, и не иметь разных состояний в зависимости от методов?

1 Ответ

1 голос
/ 17 августа 2011

Я проверил это с помощью события сортировки GridView.Выходя из события сортировки, this.table содержит отсортированные значения, поэтому он работает так, как он есть.Вы уверены, что тестируете свое решение в одностраничном запросе?После PostBack this.table снова назначается из TestData (). FillTable ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...