這是我第一個需要任何Gridview專家在.NET世界中的真正問題。.Net Gridview alpha排序,它需要進行數字排序
我從代碼隱藏創建一個Gridview,我在列中持有一堆數字數據。雖然,我確實在代碼隱藏的數字字段中添加了逗號。當我將它加載到Gridview時,我打開了排序功能,但Gridview選擇ALPHA排序而不是按數字排序,因爲我添加了這些逗號。
所以我需要幫助。任何人願意給這個一個鏡頭?我需要將gridview中的一些列更改爲數字排序,而不是使用它的alpha排序。
這是我第一個需要任何Gridview專家在.NET世界中的真正問題。.Net Gridview alpha排序,它需要進行數字排序
我從代碼隱藏創建一個Gridview,我在列中持有一堆數字數據。雖然,我確實在代碼隱藏的數字字段中添加了逗號。當我將它加載到Gridview時,我打開了排序功能,但Gridview選擇ALPHA排序而不是按數字排序,因爲我添加了這些逗號。
所以我需要幫助。任何人願意給這個一個鏡頭?我需要將gridview中的一些列更改爲數字排序,而不是使用它的alpha排序。
相反,我剛使出JQUERY表分揀機。
可以在這裏找到:tablesorter
我相信你可以提供自己的比較器對象來排序gridview。只是暗示IComparer。下面是一個文章:
如果最終實現自己的比較器,並將它們分類爲字符串,該算法用於治療數「適當」被稱爲自然排序。傑夫上寫了一個相當不錯的入門這裏:
http://www.codinghorror.com/blog/archives/001018.html
你可以在C#在這裏一個很好的實現: http://www.codeproject.com/KB/string/NaturalSortComparer.aspx
這依賴於你是如何做的排序,你可以使用的一個上面的方法,或者如果列實際上是一個數字類型,則可以返回到數據庫並在那裏完成排序,然後稍後將其添加到它。
P-Invoke是你的朋友。
[DllImport("Shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);
然後,你可以使用它作爲你自己的比較器。
例如(在VS2005)
Array.Sort(tringArray, delegate(string left, string right)
{
return StrCmpLogicalW(left, right);
});
我意識到這是真的老了,但你混合的呈現數據;那就是搞砸了。從SQL中取出數字而不添加逗號,然後將它們添加到表示層中。