FineUIPro/Mvc/Core的下個版本(v7.0.0),我們會支持取消表格排序(SortingCancel),以及為表格標題欄增加排序的提示信息(SortingToolTip)。
目前的版本,一旦設置了表格的排序列,就不能取消了,只能改變列的排序狀態或者切換當前排序列。
新版本會增加取消排序的功能,通過為表格增加SortingCancel=true屬性即可,有兩種方式取消排序:
- 點擊標題欄,會依次觸發:升序 -> 降序 -> 取消排序
- 點擊標題欄旁邊的下拉菜單,可見【取消排序】菜單項

對后台代碼的影響,就是我們需要根據SortField是否為空,確定當前是否沒有列處於排序狀態。
下面通過官網示例,來對比下增加取消排序后對后台代碼的影響:https://pro.fineui.com/#/grid/grid_sorting.aspx
之前版本的邏輯:
private void BindGrid()
{
string sortField = Grid1.SortField;
string sortDirection = Grid1.SortDirection;
DataTable table = DataSourceUtil.GetDataTable();
DataView view1 = table.DefaultView;
view1.Sort = String.Format("{0} {1}", sortField, sortDirection);
Grid1.DataSource = view1;
Grid1.DataBind();
}
新版本的邏輯:
private void BindGrid()
{
string sortField = Grid1.SortField;
string sortDirection = Grid1.SortDirection;
DataTable table = DataSourceUtil.GetDataTable();
// 判斷是否啟用排序
if (!String.IsNullOrEmpty(sortField))
{
DataView view1 = table.DefaultView;
view1.Sort = String.Format("{0} {1}", sortField, sortDirection);
Grid1.DataSource = view1;
}
else
{
Grid1.DataSource = table;
}
Grid1.DataBind();
}
增加取消排序后,如果Grid1.SortField為空,則說明沒有列處於排序狀態,因為綁定的數據就無需排序處理。
下面來看下另一個更新:排序的提示信息
這個更新對有些用戶非常必要,因為他們總是搞不清楚箭頭向上和向下的含義,除非通過排序后的數據,否則對升級和降序沒有啥子概念。
下面來看下表格啟用SortingToolTip=true后的效果:

如果列處於未排序狀態,光標移動到列標題欄時,會提示【點擊按升序排序】。
注意:提示信息表明點擊操作后的狀態,而非當前的排序狀態(這個頁面業界通用的做法)。
如果當前處於升序狀態,提示文本是【點擊按降序排序】:

這個提示信息已經做了多語言處理,來看下英文中的樣子:

三石出品,必屬精品
