我正在根據所選過濾器動態構建表格。我目前能夠按任意一行進行排序。問題是我需要排序的第一行,當我點擊另一行時,這樣我點擊的第二行就按照第一行的方式排序。一個例子,我有兩列,名字和姓氏。如何在保留第一列的排序的同時按第二列進行排序?
**FirstName** **LastName**
Bob Zimmer
Bob Anderson
Kathy Walege
Kathy Ball
所以說我點擊第一個名字行。它會保持不變,因爲第一個名字已經是有序的了。但是當我點擊姓氏行時,我想要發生以下情況。
**FirstName** **LastName**
Bob Anderson
Bob Zimmer
Kathy Ball
Kathy Walege
我現在有它的工作,所以它只能按一列一次排序。我正在使用javascript和vb.net來獲得這與我的代碼一起工作。
這裏的JavaScript:
function SortColumn(col)
{
__doPostBack('SortBy',col);
}
這裏的VB函數調用javascript函數:
Private Function AddSortLinkToColumn(ByVal sSortColumn As String) As String
Dim sVal As String = ""
sVal = "<a href=""javascript:SortColumn('" & sSortColumn & "');""><font face=""Webdings"">"
If m_sSort <> "" AndAlso Split(m_sSort, "-")(0) = sSortColumn AndAlso m_sSortDrxn = "ASC" Then
sVal &= "5"
Else
sVal &= "6"
End If
sVal &= "</font></a>"
Return sVal
End Function
這是目前正在正在單擊該列,並將它與我的世界排序的匹配起來變量。如果它們匹配,則顯示向上箭頭。如果失敗,則顯示向下箭頭。
我知道我需要以某種方式跟蹤被點擊的第一列,但我不知道如何去做。我已經在vb.net端和javascript端添加了另一列來嘗試它,但是如果我不能獲得第一列值,那麼它對我沒有任何好處!
如何保留第一列的排序然後按第二列排序?任何幫助將不勝感激!
UPDATE
在下面列出的答案的幫助下,我終於得到了這個工作!以下是代碼:
function SortColumn(col)
{
<% if m_sSort = nothing then %>
__doPostBack('SortBy', col);
<% else %>
__doPostBack('SortBy', document.getElementById("SortField").value + "," + col);
<% end if %>
}
m_sSort是vb.net端的公共變量。 「SortField」是存儲m_sSort值的隱藏字段的名稱。
我對你的瞭解,你正在查看的用戶界面的問題:你如何計劃之間「我想從名字排序,以通過排序切換決定的用戶行爲之間的區分姓氏「和」我想現在按名字和姓氏排序「?用戶無法重新點擊列,這可能會切換/下降。這讓我感到難以置信的用戶界面。 MS Excel通過給你一個對話框來填補任何超過單列排序的問題來解決它。你打算怎麼處理這個? – 2013-05-02 21:07:59
第一次點擊會對行進行排序。如果在同一行上進行第二次點擊,則會以相反的方式對其進行排序。如果第二次點擊位於不同的列上,則它也會按該列與第一行進行排序。第一次點擊後,第三次點擊開始。我明白你在說什麼,並且認爲這對用戶來說有點奇怪。但我仍然很好奇,看看它是如何完成的。 – marthann 2013-05-02 21:19:40
我也有一個鏈接,恢復默認排序,撤消列上的任何排序。 – marthann 2013-05-02 21:58:03