0

この次の例とは別に、ajax コンボ ボックスを並べ替える他の方法があるかどうか疑問に思っています。

Public Class ListItemComparer
    Implements IComparer(Of ListItem)

    Public Function Compare(ByVal x As ListItem, ByVal y As ListItem) As Integer _
        Implements IComparer(Of ListItem).Compare

        Dim c As New CaseInsensitiveComparer
        Return c.Compare(x.Text, y.Text)
    End Function
End Class

Public Shared Sub SortDropDown(ByVal cbo As AjaxControlToolkit.ComboBox)
    Dim lstListItems As New List(Of ListItem)
    For Each li As ListItem In cbo.Items
        lstListItems.Add(li)
    Next
    lstListItems.Sort(New ListItemComparer)
    cbo.Items.Clear()
    cbo.Items.AddRange(lstListItems.ToArray)
End Sub

----------Binding and Sorting Combo-Box----------
    ddlClients.DataTextField = "ClientName"
    ddlClients.DataValueField = "ClientID"
    ddlClients.DataBind()

    SortDropDown(ddlClients) 

SP では、Client Name で order by 句を使用していますが、どういうわけかコンボックスが ClientNames を順番にバインドしません。

プロジェクト内のさまざまな場所から呼び出すことができるように、この関数を CommonFunction クラスに配置するのが好きです。「AjaxControlToolkit.ComboBox」が原因で、BusinessLayer に上記の関数を追加できません。

4

0 に答える 0