разбиение по страницам и сортировка в виде сетки - PullRequest
0 голосов
/ 10 мая 2011

У меня есть код, выполняющий разбиение на страницы и сортировку в виде сетки.

(bing_grid - это пользовательская функция)

public void bind_grid()
    {
        con = new SqlConnection();
        con.ConnectionString = "Data Source=STIRAPC105;InitialCatalog=anitha;Integrated Security=True";
        con.Open();

        SqlDataAdapter sqa = new SqlDataAdapter("select * from employees", con);
        DataSet ds = new DataSet();
        sqa.Fill(ds);
        DataTable mytab = ds.Tables[0];

        GridView1.DataSource = mytab;
        GridView1.DataBind();
        //con.Close();

    }

код для пейджинга

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;

        bind_grid();

    }

код для сортировки

    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {

        DataTable dt = GridView1.DataSource as DataTable;
        if (dt != null)
        {
            DataView dataview = new DataView(dt);
            dataview.Sort = e.SortExpression + " " + sort_grid(e.SortDirection);
            GridView1.DataSource = dataview;
            GridView1.DataBind();
        }
    }

определяемый пользователем код для сортировки

public string sort_grid()
    {
        string newSortDirection = String.Empty;

        switch (sortDirection)
        {
            case SortDirection.Ascending:
                newSortDirection = "ASC";
                break;

            case SortDirection.Descending:
                newSortDirection = "DESC";
                break;
        }

        return newSortDirection;
    }

пейджинг работает, ошибок было:

1. "no overload for method 'sort_grid' takes 1 argument" (dataview.Sort = e.SortExpression + " " + sort_grid(e.SortDirection);)

2.The name 'sortDirection does not exist in the current context. (switch (sortDirection))

Помоги мне, друзья.

1 Ответ

0 голосов
/ 10 мая 2011

этот метод:

public string sort_grid()

не принимает аргументов, но вы пытаетесь вызвать его с помощью e.SortDirection:

dataview.Sort = e.SortExpression + " " + sort_grid(e.SortDirection);

Вы должны изменить сигнатуру sort_grid () на

sort_grid(SortDirection sortDirection)

Это также решит вашу вторую проблему, в которой вы пытаетесь использовать переменную sortDirection, прежде чем объявить ее в методе sort_grid.

...