Страница 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> |