0

由于 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,我该如何测试这种情况?如果甚至没有查询参数,上述条件是否仍会返回 true?

我相信我需要从原始 url 中提取一个查询,如果它不存在,请将我的排序方向设置为降序。

4

3 回答 3

3

您可能需要将 if 语句更改为:

 if( string.IsNullOrEmpty(Request.QueryString[grid.SortDirectionFieldName]) ){
     //sort desc
 }
于 2012-10-26T20:07:11.230 回答
1

这行得通吗?除非查询字符串变量显式为“ASC”,否则它将默认为降序。

        if (Request.QueryString[grid.SortDirectionFieldName] == "ASC")
        {
            grid.SortDirection = SortDirection.Ascending;
        }
        else
        {
            grid.SortDirection = SortDirection.Descending;
        }
于 2012-10-26T20:04:23.633 回答
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');
        }
    });
});
于 2012-10-26T21:29:06.047 回答