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 に答える