Основы ASP.NET 2.0



         

DataGrid - часть 6


Но это только потенциальная возможность сортировки, так как сам элемент сортировать не может, это должен обеспечить программист. При AllowSorting = True в заголовке выводятся гиперссылки, при нажатии на которые вызывается событие SortCommand. Так как нет автогенерации, в описание BoundColumn нужно вставить SortExpression:

<asp:BoundColumn DataField="name" FooterText="Name" HeaderText="Фамилия" SortExpression="name"> </asp:BoundColumn>

Метод-обработчик события SortCommand принимает параметр типа DataGridSortCommandEventArgs, в свойстве SortExpression которого содержится строка — выражение сортировки SortExpression. Необходимо использовать это выражение для сортировки данных, полученных из источника данных

protected void DataGrid2_SortCommand(object source, DataGridSortCommandEventArgs e) { ViewState["sort"] = e.SortExpression; bindData(); }

где bindData() вынесен в отдельную функцию и вызывается также из Page_Load:

private void bindData() { String xmlFilename = Server.MapPath("") + "\\nobel.xml"; DataSet newDataSet = new DataSet(); newDataSet.ReadXml(xmlFilename); if (ViewState["sort"] != null) newDataSet.Tables[3].DefaultView.Sort = (string)ViewState["sort"]; DataTable newDataTable = newDataSet.Tables[3]; DataGrid2.DataSource = newDataTable; DataGrid2.DataBind(); }

void Page_Load() { if (!IsPostBack) bindData(); }

ФамилияСтранаГодПроизведениеNameCountryYear wonWork
Romain RollanFrance1915"Jean-Cristophe"
George Bernard ShawGreat Britain1925
Boris PasternakRussia1958"Doctor Zhivago"
Gabriel Garsia MarquezColumbia1982"100 years of solitude"




Содержание  Назад  Вперед