Сортировка GridView на другой странице, как отсортировано на предыдущей странице - PullRequest
1 голос
/ 23 ноября 2011

У меня есть вид сетки в моем приложении.При нажатии кнопки та же сетка с такими же столбцами также загружается на другую страницу.Теперь я хочу, чтобы пользователь отсортировал сетку с некоторым столбцом на странице 1sr, сетка на другой странице, которая загружается при нажатии кнопки, также должна быть отсортирована по тому же столбцу, который пользователь выбрал на предыдущей странице.Как я могу достичь этого.

Любая помощь в этом отношении будет принята ... :)

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Полагаю, вы могли бы использовать переменную сеанса для хранения направления сортировки. Поэтому, когда вы загружаете GridView, вы запрашиваете переменную сеанса, чтобы правильно ее отсортировать.

Должно быть что-то похожее на это:

private string getSortDirectionString()
    {
        if (Session["sortDirection"] == null)
        {
            Session["sortDirection"] = "ASC";
        }
        else
        {
            if (Session["sortDirection"].ToString() == "ASC")
            {
                Session["sortDirection"] = "DESC";
                return Session["sortDirection"].ToString();
            }
            if (Session["sortDirection"].ToString() == "DESC")
            {
                Session["sortDirection"] = "ASC";
                return Session["sortDirection"].ToString();
            }
        }
        return Session["sortDirection"].ToString();
    }

И вот как вы должны отсортировать ваш GridView:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        listBind(); //procedure to populate your GridView
        DataSet dsSortTable = GridView1.DataSource as DataSet;
        DataTable dtSortTable = dsSortTable.Tables[0];
        if (dtSortTable != null)
        {
            DataView dvSortedView = new DataView(dtSortTable);
            dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString();
            Session["sortExpression"] = e.SortExpression;
            GridView1.DataSource = dvSortedView;
            GridView1.DataBind();
        }
    }

Таким образом, вы всегда будете хранить выражение sortExpression в переменной сеанса и можете использовать его во всем приложении.

Надеюсь, это поможет!

0 голосов
/ 23 ноября 2011

Как грубый контур, вы могли бы -

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