Hello,
I have listbox with checkboxes.
I need to select/deselect item when checkbox is checked/unchecked and check/uncheck checkbox when item is selected/deselected.
I have implemented this by adding handlers to OnClientSelectedIndexChanged and OnClientItemChecked events.
It works fine when single or multiple items are selected.
But it does not work if items were moved by buttons or by mouse.
When item "N1" (for example) is moved and then I select other item, listbox.get_checkedItems() returns this item and then I do uncheck for it in SelectedIndexChanged handler. But checkbox of this item is still checked, moreover listbox.get_checkedItems() does not return the item anymore. It looks like the item has 'not checked' status in object model but its checkbox is still checked.
I use ASP.NET AJAX Q1 2011.
/Vladimir
I have listbox with checkboxes.
I need to select/deselect item when checkbox is checked/unchecked and check/uncheck checkbox when item is selected/deselected.
I have implemented this by adding handlers to OnClientSelectedIndexChanged and OnClientItemChecked events.
<
script
type
=
"text/javascript"
>
var lock;
var SelectedIndexChanged = function (sender, event) {
if (!lock) {
lock = true;
var item = event.get_item();
var listbox = item.get_listBox();
item.check();
var selectedItems = jQuery.makeArray(listbox.get_selectedItems());
var checkedItems = listbox.get_checkedItems();
var diffItems = [];
for (var i = 0; i <
checkedItems.length
; i++) {
if (jQuery.inArray(checkedItems[i], selectedItems) == -1) {
diffItems.push(checkedItems[i]);
}
}
for (var
i
=
0
; i < diffItems.length; i++) {
diffItems[i].uncheck();
}
lock
=
false
;
}
}
var
ItemChecked
=
function
(sender, event) {
lock
=
true
;
var
i
=
event
.get_item();
i.set_selected(i.get_checked());
lock
=
false
;
}
</script>
<asp:ScriptManager ID="sc" runat="server">
</asp:ScriptManager>
<telerik:RadListBox ID="lstbx1" runat="server" AllowDelete="false" AllowReorder="true"
CheckBoxes="true" AllowTransfer="false" AutoPostBack="false" DataKeyField="ID"
DataTextField="Name" DataValueField="ID" SelectionMode="Multiple"
EnableDragAndDrop="true" Height="210" Width="250"
OnClientSelectedIndexChanged="SelectedIndexChanged"
OnClientItemChecked="ItemChecked">
</telerik:RadListBox>
It works fine when single or multiple items are selected.
But it does not work if items were moved by buttons or by mouse.
When item "N1" (for example) is moved and then I select other item, listbox.get_checkedItems() returns this item and then I do uncheck for it in SelectedIndexChanged handler. But checkbox of this item is still checked, moreover listbox.get_checkedItems() does not return the item anymore. It looks like the item has 'not checked' status in object model but its checkbox is still checked.
I use ASP.NET AJAX Q1 2011.
/Vladimir