Проверьте эту ссылку. RadListBox сортировка . Если эта ссылка недоступна. Это код.
Я прямо цитирую разработчика, который написал следующий код
Использование стрелок вверх и вниз: если пользователь использует стрелки вверх и вниз для перехода
через отфильтрованный список, он может не работать, потому что вверх и
Стрелка вниз потенциально может «останавливаться» на скрытых предметах.
Очистка фильтра после передачи: я решил очистить отфильтрованный
список и фильтр после передачи. В противном случае, если пользователь
передает элемент обратно, пока ваш список будет отфильтрован, вам нужно
повторно фильтр. Кроме того, этот элемент может не соответствовать критериям фильтра и выглядеть
исчезнуть пользователю.
body
{
font-family: Trebuchet MS, Sans-Serif;
}
.listBoxHeaders
{
color:Green;
font-weight:bold;
}
.RadListBox span.rlbText em
{
background-color: #E5E5E5;
font-weight: bold;
font-style: normal;
}
.rbClear
{
background-image: url(images/clear.png);
background-position: center;
background-repeat: no-repeat;
}
ASP.NET Markup:
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
<Scripts>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
<asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
</Scripts>
</telerik:RadScriptManager>
<telerik:RadCodeBlock runat="server" >
<script type="text/javascript">
function filterList()
{
var listbox = $find("<%= rlbAvailable.ClientID %>");
var textbox = $find('<%= tbAvailableFilter.ClientID %>');
clearListEmphasis(listbox);
createMatchingList(listbox, textbox.get_textBoxValue());
}
// Remove emphasis from matching text in ListBox
function clearListEmphasis(listbox)
{
var re = new RegExp("</{0,1}em>", "gi");
var items = listbox.get_items();
var itemText;
items.forEach
(
function (item)
{
itemText = item.get_text();
item.set_text(itemText.replace(re, ""));
}
)
}
// Emphasize matching text in ListBox and hide non-matching items
function createMatchingList(listbox, filterText)
{
if (filterText != "")
{
filterText = escapeRegExCharacters(filterText);
var items = listbox.get_items();
var re = new RegExp(filterText, "i");
items.forEach
(
function (item)
{
var itemText = item.get_text();
if (itemText.match(re))
{
item.set_text(itemText.replace(re, "<em>" + itemText.match(re) + "</em>"));
item.set_visible(true);
}
else
{
item.set_visible(false);
}
}
)
}
else
{
var items = listbox.get_items();
items.forEach
(
function (item)
{
item.set_visible(true);
}
)
}
}
function rlbAvailable_OnClientTransferring(sender, eventArgs)
{
// Transferred items retain the emphasized text, so it needs to be cleared.
clearListEmphasis(sender);
// Clear the list. Optional, but prevents follow up situation.
clearFilterText();
createMatchingList(sender, "");
}
function rbtnClear_OnClientClicking(sender, eventArgs)
{
clearFilterText();
var listbox = $find("<%= rlbAvailable.ClientID %>");
clearListEmphasis(listbox);
createMatchingList(listbox, "");
}
// Clears the text from the filter.
function clearFilterText()
{
var textbox = $find('<%= tbAvailableFilter.ClientID %>');
textbox.clear();
}
// Escapes RegEx character classes and shorthand characters
function escapeRegExCharacters(text)
{
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}
</script>
</telerik:RadCodeBlock>
<div style="margin-bottom: 10px;">
<telerik:RadButton ID="btnSave" runat="server"
Text="Save"
onclick="btnSave_Click">
<Icon PrimaryIconCssClass="rbSave" />
</telerik:RadButton>
</div>
<div class="listBoxHeaders">
<span style="margin-left:50px;">
Available States
</span>
<span style="margin-left:136px;">
Chosen States
</span>
</div>
<div>
<table style="position:relative;left:-3px;margin-bottom:2px;">
<tr>
<td>
<telerik:RadTextBox ID="tbAvailableFilter" runat="server"
Width="187px"
EmptyMessage="Search States..."
autocomplete="off"
onkeyup="filterList();" />
</td>
<td>
<telerik:RadButton ID="rbtnClear" runat="server"
Width="22px"
AutoPostBack="false"
OnClientClicking="rbtnClear_OnClientClicking">
<Icon PrimaryIconCssClass="rbClear" />
</telerik:RadButton>
</td>
</tr>
</table>
</div>
<telerik:RadListBox ID="rlbAvailable" runat="server"
Height="250px"
Width="250px"
AllowTransfer="true"
AllowTransferOnDoubleClick="true"
TransferToID="rlbChosen"
EnableDragAndDrop="true"
OnClientTransferring="rlbAvailable_OnClientTransferring"
ButtonSettings-ShowTransferAll="false"/>
<telerik:RadListBox ID="rlbChosen" runat="server"
Height="250px"
Width="250px"
EnableDragAndDrop="true"
AllowReorder="true"/>
<br /><br />
<strong>States I've Lived In:</strong>
<asp:Repeater ID="rptStates" runat="server">
<ItemTemplate>
<div><%# Eval("Text") %></div>
</ItemTemplate>
</asp:Repeater>
C#
using System;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rlbAvailable.LoadContentFile("states.xml");
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
rptStates.DataSource = rlbChosen.Items;
rptStates.DataBind();
}
}