Опубликован: 07.05.2010 | Доступ: свободный | Студентов: 1676 / 62 | Оценка: 4.56 / 4.06 | Длительность: 34:11:00
Лекция 12:

Компоненты данных ADO.NET

Сортировка извлеченных автономных данных с помощью DataView

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

  • Скопируйте страницу GridViewEmployees.aspx и дайте ей имя GridViewDataView.aspx

    При копировании не забудьте на странице в директиве @Page исправить параметр Inherits="GridViewDataView" а в файле поддержки переопределить имя класса на GridViewDataView

  • Поместите на страницу дополнительные элементы управления GridView так, чтобы они располагались друг за другом по вертикали в порядке GridView1, GridView2, GridView3
  • Вставьте перед каждым элементом строку-заголовок
    • <h2>Несортированные данные</h2>
    • <h2>Сортированы по полю FirstName</h2>
    • <h2>Сортированы по полю LastName</h2>

Интерфейс страницы на этапе проектирования должен быть таким

  • Отредактируйте файл поддержки страницы следующим образом
    using System;
    using System.Data;
        
    using System.Web.Configuration;
    using System.Data.SqlClient;
        
    public partial class GridViewDataView : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Содать Connection, DataAdapter и DataSet
            string connectionString = WebConfigurationManager.
                ConnectionStrings["Northwind"].ConnectionString;
            SqlConnection con = new SqlConnection(connectionString);
            string sql = 
                "SELECT TOP 5 EmployeeID, TitleOfCourtesy, LastName, "
              + "FirstName FROM Employees";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, con);
            DataSet dataset = new DataSet();
            adapter.Fill(dataset, "EmployeesTable");
        
            // Привязать данные к GridView1 для отображения
            // без сортировки как они есть
            GridView1.DataSource = dataset.Tables["EmployeesTable"];
        
            // Скопировать данные в экземпляр класса DataView,
            // отсортировать по полю FirstName, затем привязать
            DataView view2 = new DataView(dataset.Tables["EmployeesTable"]);
            view2.Sort = "FirstName";
            GridView2.DataSource = view2;
        
            // Скопировать данные в экземпляр класса DataView,
            // отсортировать по полю FirstName, затем привязать
            DataView view3 = new DataView(dataset.Tables["EmployeesTable"]);
            view3.Sort = "LastName";
            GridView3.DataSource = view3;
        
            // Загрузить привязанные данные во все элементы отображения GridView
            Page.DataBind();
        }
    }
  • Исполните страницу GridViewDataView.aspx, чтобы получить следующий результат

Несортированные данные

EmployeeID TitleOfCourtesy LastName FirstName
1 Ms. Davolio Nancy
2 Dr. Fuller Andrew
3 Ms. Leverling Janet
4 Mrs. Peacock Margaret
5 Mr. Buchanan Steven

Сортированы по полю FirstName

EmployeeID TitleOfCourtesy LastName FirstName
2 Dr. Fuller Andrew
3 Ms. Leverling Janet
4 Mrs. Peacock Margaret
1 Ms. Davolio Nancy
5 Mr. Buchanan Steven

Сортированы по полю LastName

EmployeeID TitleOfCourtesy LastName FirstName
5 Mr. Buchanan Steven
1 Ms. Davolio Nancy
2 Dr. Fuller Andrew
3 Ms. Leverling Janet
4 Mrs. Peacock Margaret