2012-10-26 60 views
0

由於MVC3 WebGrid排序默認值是通過查詢字符串升序,& sortdir = ASC ..我想知道如何按降序排序。檢查是否存在http查詢,而不是參數

我已經試過以下使用的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?

我相信我需要從原始網址提取查詢,如果它不存在,請將我的排序方向設置爲降序。

回答

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'); 
     } 
    }); 
}); 
1

這項工作?它將默認爲降序,除非查詢字符串變量明確地爲「ASC」。

 if (Request.QueryString[grid.SortDirectionFieldName] == "ASC") 
     { 
      grid.SortDirection = SortDirection.Ascending; 
     } 
     else 
     { 
      grid.SortDirection = SortDirection.Descending; 
     } 
+0

這個邏輯網格最初如何工作在第一類的點擊。我想排序降序,但查詢字符串總是返回ASC由於某種原因 –

3

您可能需要改變,如果聲明這是你的:

if(string.IsNullOrEmpty(Request.QueryString[grid.SortDirectionFieldName])){ 
    //sort desc 
} 
+0

第一次排序後,它仍然按升序排序。如果我改變邏輯來說!string.isnullorempty,我得到降序,但它然後繼續排序相同的方式.. –

+0

看起來像我需要改變查詢參數DESC後點 –

相關問題