2014-06-11 63 views
0

我是一個相當初級的C#開發人員,所以請原諒,如果這很容易。我試圖按ASCDESC順序排列表格中的數據,但由於某種原因,它沒有這樣做。表列標題不排序數據

這裏是爲您檢查排序代碼:

if (sorting != null) 
       { 
        if (sorting.Equals("TrackID ASC")) 
        { 
         daa.OrderBy(p => p.TrackID); 
        } 
        else if (sorting.Equals("TrackID DESC")) 
        { 
         daa.OrderByDescending(p => p.TrackID); 
        } 
        if (sorting.Equals("TrackName ASC")) 
        { 
         daa.OrderBy(p => p.TrackName); 
        } 
        else if (sorting.Equals("TrackName DESC")) 
        { 
         daa.OrderByDescending(p => p.TrackName); 
        } 
        else if (sorting.Equals("DateTimes ASC")) 
        { 
         daa.OrderBy(p => p.Date); 
        } 
        else if (sorting.Equals("DateTimes DESC")) 
        { 
         daa.OrderByDescending(p => p.Date); 
        } 
        else if (sorting.Equals("ArtistName ASC")) 
        { 
         daa.OrderBy(p => p.ArtistName); 
        } 
        else if (sorting.Equals("ArtistName DESC")) 
        { 
         daa.OrderByDescending(p => p.ArtistName); 
        } 
        else if (sorting.Equals("Times ASC")) 
        { 
         daa.OrderBy(p => p.Times); 
        } 
        else if (sorting.Equals("Times DESC")) 
        { 
         daa.OrderByDescending(p => p.Times); 
        } 
       } 

是否有人可以解釋爲什麼它不工作,我怎麼解決,實現它在ASCDESC對數據進行排序?

任何幫助將是巨大的:)謝謝

+0

@chandreshpatel是的我做了,找不到任何可以解釋或解決我的問題的東西,因此我在發佈我的問題之前先看看這裏。我沒有嘗試在gridview中排序數據。如上所述,我正在使用jQuery jTable。 – user3679123

+0

你調試了列表中斷點嗎?它排序與否。如果daa是一個IEnumerable類型,那麼它將最終排序。 –

+0

@chandreshpatel謝謝你..這就是'daa'是'列表 daa =新列表();'它不是'IEnumerable type'。我可以從'List'將它轉換爲'IEnumerable'嗎?再次感謝:) – user3679123

回答

1

如果我沒有記錯的方法「排序依據」和「OrderByDescending」不排序對象,直接打電話給他們。相反,它們會返回IOrderedEnumerable < object> collection,因此您需要使用IOrderedEnumerable作爲參考對自己的daa集合進行排序,或者從IOrderedEnumerable創建集合類型並將其分配給daa。當然,刷新用戶界面。

+0

感謝您的回答,現在有了很多意義。讓我試試你的建議,並再次感謝:) – user3679123

1
if (sorting != null) 
       { 
        if (sorting.Equals("TrackID ASC")) 
        { 
         daa = daa.OrderBy(p => p.TrackID).ToList(); 
        } 
        else if (sorting.Equals("TrackID DESC")) 
        { 
         daa = daa.OrderByDescending(p => p.TrackID).ToList(); 
        } 
        if (sorting.Equals("TrackName ASC")) 
        { 
        daa = daa.OrderBy(p => p.TrackName).ToList(); 
        } 
        else if (sorting.Equals("TrackName DESC")) 
        { 
         daa = daa.OrderByDescending(p => p.TrackName).ToList(); 
        } 
        else if (sorting.Equals("DateTimes ASC")) 
        { 
         daa = daa.OrderBy(p => p.Date).ToList(); 
        } 
        else if (sorting.Equals("DateTimes DESC")) 
        { 
         daa = daa.OrderByDescending(p => p.Date).ToList(); 
        } 
        else if (sorting.Equals("ArtistName ASC")) 
        { 
         daa = daa.OrderBy(p => p.ArtistName).ToList(); 
        } 
        else if (sorting.Equals("ArtistName DESC")) 
        { 
         daa = daa.OrderByDescending(p => p.ArtistName).ToList(); 
        } 
        else if (sorting.Equals("Times ASC")) 
        { 
         daa = daa.OrderBy(p => p.Times).ToList(); 
        } 
        else if (sorting.Equals("Times DESC")) 
        { 
         daa = daa.OrderByDescending(p => p.Times).ToList(); 
        } 
       } 

試試這也一次。

+0

謝謝你:) - 你的修復似乎是壁櫥,但它沒有奏效。我得到這個錯誤'不能隱式地將類型System.Linq.IOrderedEnumerable 轉換爲System.Collections.Generic.List '。你究竟是什麼建議..任何方式來轉換這個?再次感謝:) – user3679123

+0

我編輯答案現在嘗試。 –

+0

再次感謝:)它沒有工作:(我們在這裏缺少一些重要的東西? – user3679123