DataTable должен быть установлен до использования DataView - PullRequest
2 голосов
/ 29 января 2010

Когда я пытаюсь отсортировать таблицу вручную, я получаю эту ошибку: DataTable должен быть установлен до использования DataView. Код:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {

        DataTable sourceTable = GridView1.DataSource as DataTable;
        DataView view = new DataView(sourceTable);
        string[] sortData = Session["sortExpression"]!= null ? Session["sortExpression"].ToString().Trim().Split(' ') : null;
        if (sortData != null && e.SortExpression == sortData[0])
        {
            if (sortData[1] == "ASC")
            {
                view.Sort = e.SortExpression + " " + "DESC";
                Session["sortExpression"] = e.SortExpression + " " + "DESC";
            }
            else
            {
                view.Sort = e.SortExpression + " " + "ASC";
                Session["sortExpression"] = e.SortExpression + " " + "ASC";
            }
        }
        else
        {
            view.Sort = e.SortExpression + " " + "ASC";
            Session["sortExpression"] = e.SortExpression + " " + "ASC";
        }

    }

Где я не прав?

Ответы [ 2 ]

3 голосов
/ 29 января 2010

Скорее всего, GridView1.DataSource имеет значение null. Учебник по сортировке Gridview можно найти здесь: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx

0 голосов
/ 29 января 2010

Возможно, ваш набор данных также должен быть частью набора данных.

Аналогично

DataSet ds = new DataSet()
DataTable sourceTable = GridView1.DataSource as DataTable;
ds.Tables.Add(sourceTable)
DataView view = new DataView(sourceTable);
string[] sortData = Session["sortExpression"]!= null ? Session["sortExpression"].ToString().Trim().Split(' ') : null;

Это только из странного прошлого опыта

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