Доступ к базе данных из ASP.NET - Сортировка данных
ОГЛАВЛЕНИЕ
Сортировка данных
Этот пример обеспечивает доступ к базе данных, связывает DataGrid с именами столбцов, которые являются сортируемыми. Когда имя столбца выбрано, таблица будет отсортирована непосредственно в порядке этого столбца.
Создание отсортированной таблицы
1. Импортируем необходимые пространства имён.
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<html>
Внутри тэга <script language="C#" runat="server"> показан пример трёх функций: Page_Load, MyDataGrid_Sort и BindGrid. Эти функции более подробно описаны в представленных ниже шагах.
<script language="C#" runat="server">
SQLConnection myConnection;
2. Определяем функцию Page_Load, которая устанавливает информацию подключения к базе данных "pubs". Также она проверяет, что эта страница не является PostBack, но если это так, вызывает специальную функцию BindGrid. BindGrid описана в шаге 4, главы 5. "Вставка данных в SQL базу данных".
3. Определяем функцию MyDataGrid_Sort. Эта функция получает аргумент DataGridSortCommandEventArgs E, который связан с атрибутом OnSortCommand в DataGrid, и использует его в BindGrid.
protected void MyDataGrid_Sort(Object Src,
DataGridSortCommandEventArgs E)
{
BindGrid(E.SortField);
}
4. Определяем функцию BindGrid. Эта функция исполняется по-другому, чем в предыдущих примерах. Параметр SortField (сортируемый столбец) передаётся в неё из функции MyDataGrid_Sort. Она использует эту информацию, чтобы отсортировать таблицу по указанному столбцу.
public void BindGrid(String SortField)
{
а) Устанавливаем SQLDataSetCommand, чтобы получить доступ к таблице "Authors" в базе данных "pubs" (myConnection было установлено в шаге 2).
SQLDataSetCommand myCommand = new SQLDataSetCommand
("select * from Authors", myConnection);
б) Устанавливаем и заполняем новый Dataset.
DataSet ds = new DataSet();
myCommand.FillDataSet(ds, "Authors");
в) Устанавливаем DataView для нового Dataset, и сортируем данные, используя SortField.
DataView Source = ds.Tables["Authors"].DefaultView;
Source.Sort = sortfield;
г) Связываем DataGrid с сортируемым DataView. Заметьте, что MyDataGrid - это "id", переданный DataGrid в body страницы (шаг 5б).
MyDataGrid.DataSource=Source;
MyDataGrid.DataBind();
}
5. В <body> отображаем данные.
<body>
а) Отображаем заголовок.
<h3><font face="Verdana">Sorting Data in a DataGrid Control
</font></h3>
б) В тэге <form> создаём DataGrid и инициализируем его атрибуты.
<form runat="server">
<ASP:DataGrid id="MyDataGrid" runat="server"
OnSortCommand="MyDataGrid_Sort"
Width="700"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AllowSorting="true"
/>
</form>
</body>
</html>