Что делать, чтобы выполнить сортировку в режиме сетки?Сортировка в GridView + Asp.net
Пожалуйста, помогите
Что делать, чтобы выполнить сортировку в режиме сетки?Сортировка в GridView + Asp.net
Пожалуйста, помогите
Вы можете реализовать код, подобный следующему:
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dataTable = GridView1.DataSource as DataTable;
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection);
GridView1.DataSource = dataView;
GridView1.DataBind();
}
}
private string ConvertSortDirectionToSql(SortDirection sortDirection)
{
string newSortDirection = String.Empty;
switch (sortDirection)
{
case SortDirection.Ascending:
newSortDirection = "ASC";
break;
case SortDirection.Descending:
newSortDirection = "DESC";
break;
}
return newSortDirection;
}
С этим кодом, ваше определение GridView следует читать:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowSorting="true" OnSorting="GridView1_Sorting">
<Columns>
<asp:BoundField DataField="Name" HeaderText="People Names" SortExpression="Name" />
<asp:BoundField DataField="Age" HeaderText="People Ages" SortExpression="Age" />
</Columns>
</asp:GridView>
Не уверен, что если вы уже добавили это событие или нет в вашем коде позади.
У вас есть AllowSorting="true"
, установленный для GridView, и поэтому вам нужно, чтобы имеет обработчик событий для его сортировочного события.
< asp:GridView AllowSorting=true ID="GridView1" runat="server"
OnSorting="GridView1_Sorting" >
...
</asp:GridView>
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
//Add your code here for handling
}
Попробуйте нажать еще раз на том же столбце и увидеть если он сортирует в другом направлении. –
Ваша проблема может быть решена по этой ссылке: http://stackoverflow.com/questions/250037/gridview-sorting-sortdirection-always-ascending –