| Доступ к данным | Доступ к БД из ASP.NET | 8. Сортировка данных | В начало» |
|
8. Сортировка данных Этот пример обеспечивает доступ к базе данных, связывает 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>
|
| Доступ к данным | Доступ к БД из ASP.NET | 8. Сортировка данных | В начало» |