Сортировка элементов в RadComboBox, который содержит столбцы:

У меня есть RadComboBox, как показано ниже: -

<telerik:RadComboBox ID="RadComboBox" runat="server"  EmptyMessage="Select"  DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="id" ShowMoreResultsBox="true" EnableVirtualScrolling="true" HighlightTemplatedItems="true" ItemsPerRequest="10" >
                    <HeaderTemplate>
                        <table style="width: 500px">
                            <tr>
                                <td style="font-weight: bold; width: 400px">Name</td>
                                <td style="font-weight: bold; width: 100px">ID</td>
                            </tr>
                        </table>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <table style="width: 500px">
                            <tr>
                                <td style="width: 400px"><%#DataBinder.Eval(Container.DataItem, "name")%></td>
                                <td style="width: 100px"><%#DataBinder.Eval(Container.DataItem, "id")%></td>
                            </tr>
                        </table>
                    </ItemTemplate>
                </telerik:RadComboBox>
                <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:SqlConnectionString %>" ProviderName="System.Data.SqlClient" SelectCommand="SELECT * FROM table1 order by name asc" />    

Теперь он наполняет мой RadComboBox.

Теперь я хочу отсортировать элементы в моем RadComboBox в алфавитном порядке, когда я нажимаю <HeaderTemplate> "Name", а когда я нажимаю <HeaderTemplate> "ID", я хочу сортировать их по номерам.

Теперь, как этого добиться, может ли кто-нибудь дать мне совет или помощь, спасибо!


person James Randy    schedule 30.05.2017    source источник


Ответы (1)


Вам придется нелегко, поскольку эта функциональность не встроена. Одна из идей состоит в том, чтобы добавить событие клика JavaScript в ваши заголовки и использовать его для заполнения скрытого элемента. Затем проверьте элемент и примените сортировку на сервере. Я дам вам идею с некоторым псевдокодом.

<script>
    function Sort(field){
       //fill hidden server element with field or some indicator
       //rebind combo box with sorted data
    }
</script>

<HeaderTemplate>
                        <table style="width: 500px">
                            <tr>
                                <td style="font-weight: bold; width: 400px" onclick="Sort('name')">Name</td>
                                <td style="font-weight: bold; width: 100px" onclick="Sort('ID')">ID</td>
                            </tr>
                        </table>
                    </HeaderTemplate>
person Seano666    schedule 30.05.2017
comment
Я попробовал ваш совет, но безуспешно, также начали появляться новые проблемы. Так как это не встроенный функционал, думаю это невозможно!! - person James Randy; 02.06.2017
comment
@JackCarothers Жаль это слышать, это не невозможно. Просто продолжайте пробовать и думайте о хорошем! Удачи чувак. - person Seano666; 02.06.2017
comment
Да, я думаю, что могу добавить RadGrid в DropDown и сделать заголовок добавленного RadGrid сортируемым !! Это кажется наиболее подходящим решением этой проблемы. Большое спасибо !! - person James Randy; 05.06.2017
comment
Рад, что вы поняли это, если мой ответ был полезен, отметьте его как принятый, чтобы я мог получить свои воображаемые интернет-очки. - person Seano666; 05.06.2017