我有一个如下的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
。
现在我想在点击<HeaderTemplate> "Name"
时按字母顺序对RadComboBox中的项目进行排序,当我点击<HeaderTemplate> "ID"
时,我想用数字排序。
现在如何实现这一点,任何人都可以给我任何建议或帮助,谢谢!
答案 0 :(得分:0)
你将度过一段艰难的时期,因为这个功能不是内置的。一个想法是在你的标题中添加一个JavaScript click事件,用它来填充一个隐藏的元素。然后检查元素并在服务器上应用排序。我会给你一些伪代码的想法。
<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>