0
gridview控件的默認排序順序是先升後降。現在下面我有代碼來改變這一點。到現在爲止還挺好。但是當我再次點擊另一列時,它會將排序方向設置爲再次上升。無論是哪一列,每次點擊都會下降和上升。現在我真正想要的是任何列的第一次點擊降序,如果我第二次點擊任何列(第二次意味着連續),它應該是遞增的。例如:我有兩列,一個是工資,另一個是年齡。現在我點擊薪水,第一個排序方向是降序,而不是默認升序(這是代碼的作用)。現在,當我點擊年齡時,它將排序方向切換爲升序,我希望在更改爲另一列時保持不變,但是如果我第二次再次點擊薪水,它應該切換到升序(因爲降序是第一次點擊)。有什麼建議麼?Gridview控件排序方向
我的代碼:
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set
{
ViewState["sortDirection"] = value;
}
}
protected void GridView1_OnSorting(object sender, GridViewSortEventArgs e)
{
if (ViewState["sortDirection"] == null)
{
e.SortDirection = SortDirection.Descending;
}
else if (GridViewSortDirection == SortDirection.Ascending)
{
e.SortDirection = SortDirection.Descending;
}
else if (GridViewSortDirection == SortDirection.Descending)
{
e.SortDirection = SortDirection.Ascending;
}
GridViewSortDirection = e.SortDirection;
}
我認爲這部分你所說的:if(!e.SortExpression = GridView1.SortExpression) { e.SortDirection = SortDirection.Descending; }應該只添加到我的代碼中,在受保護的無效GridView1_OnSorting(對象發件人,GridViewSortEventArgs e)中的第一件事? 陳述 –
因爲我不確定,因爲我從另一個論壇討論中得到了我的代碼。我只理解了一半的代碼。 –
我已根據您的上述代碼更新了我的答案。它應該可以工作,但是我還沒有能夠測試它。 – jdavies