Сторона клиентов RadListBox выбирает активный элемент

У меня есть RadlistBox внутри UpdatePanel, и я пытаюсь добавить дополнительную логику в событие onkeydown. Мне удалось получить половину того, что мне нужно было сделать, с помощью метода RadListBox.get_item(0).set_selection(true/false) (вводя несколько дополнительных правил для навигации в элементе управления), однако активная маркировка элемента остается на ранее выбранном элементе. Если я вручную удаляю класс rlbActive из элемента, похоже, что он проходит через какое-то другое событие, которое позже снова добавляет класс (возможно, SelectionIndexChanging или SelectionIndexChanged). Некоторые методы в контрольной документации вообще не работают, что, вероятно, связано с панелью обновлений.Любой, у кого была возможность иметь дело с Radlistbox, чтобы иметь возможность посоветовать правильный метод добавления настраиваемой навигации (сборка не соответствует моим требованиям) или, по крайней мере, указать, как изменить активный элемент без него вызывая странные ошибки? Приведенный ниже код дает основную идею.

      <asp:UpdatePanel ID="panelId" runat="server">
    <ContentTemplate>
        <telerik:RadListBox ID="radListBoxId" runat="server"
            SelectionMode="Multiple"
            TabIndex="1"  
            AutoPostBack="True"
            OnClientSelectedIndexChanged="OnClientSelectedIndexChanged"
            OnClientSelectedIndexChanging="OnClientSelectedIndexChanging"
            OnClientLoad="OnClientLoad">
        </telerik:RadListBox>
    </ContentTemplate>
</asp:UpdatePanel>
      function OnClientLoad(sender, args) {
    $telerik.$(".rlbGroup", sender.get_element())
        .bind("keydown", function (e) {
            onKeyDown(sender, e);
        });
}
function OnClientSelectedIndexChanging(sender, args) {
}
function OnClientSelectedIndexChanged(sender, args) {
}
function onKeyDown(event){
//custom navigation logic
//what properties or methods of the RadListBox can be used to change the active item?
var currentItem = radlistbox.Get_selected();
var newItem = //e.g find currentindex +1 and select item by index
currentItem .set_selection(false);
newItem.set_selection(true); //selection is moved but active item is still currentItem
}

0 ответов

Другие вопросы по тегам