由于MVC3 WebGrid排序默认是通过查询字符串提升,& sortdir = ASC ..我想知道如何通过降序排序。
我在下面尝试过使用Request.QueryString,但是在这种情况下,绝对没有查询字符串"?..",这看起来没有工作:
// Force a descending sort on page load when query string is empty
if(Request.QueryString[grid.SortDirectionFieldName].IsEmpty()){
grid.SortDirection = SortDirection.Descending;
}
由于我最初有一个像..Admin / Review这样的路径,而不是../Admin/Review?sort=Question6&sortdir=ASC,我该如何测试这个案例?如果甚至没有查询参数,上述条件是否仍会返回?
我相信我需要从原始网址中提取查询,如果它不存在,请将我的排序方向设置为降序。
答案 0 :(得分:3)
您可能需要将if语句更改为:
if( string.IsNullOrEmpty(Request.QueryString[grid.SortDirectionFieldName]) ){
//sort desc
}
答案 1 :(得分:1)
这会有用吗?除非querystring变量显式为“ASC”,否则它将默认为Descending。
if (Request.QueryString[grid.SortDirectionFieldName] == "ASC")
{
grid.SortDirection = SortDirection.Ascending;
}
else
{
grid.SortDirection = SortDirection.Descending;
}
答案 2 :(得分:0)
最终使用JS:
$(document).ready(function () {
var ignoreURL = window.location.href.replace('DESC', 'ASC');
$('#grid th a').each(function () {
if (this.href.indexOf('ASC') > -1 && this.href != ignoreURL) {
this.href = this.href.replace('ASC', 'DESC');
}
});
});