In a RadTreeList, when a user clicks on a checkbox, I want
to check its child nodes, but only ones that are enabled. The issue is that
there is no API to determine if a node is enabled. I’m have been trying with
JQuery selector, so far unsuccessfully.
I include the code as follows.
<telerik:RadTreeList ID="rtlFolderView" runat="server" OnNeedDataSource="rtlFolderView_NeedDataSource" Width="100%" Height="100%"
ParentDataKeyNames="ParentDocumentFolderId" DataKeyNames="DocumentFolderId" AllowPaging="false" AllowMultiItemSelection="true"
OnItemDataBound="rtlFolderView_ItemDataBound" AutoGenerateColumns="false" AllowSorting="true" ExpandCollapseMode="Server">
<ClientSettings>
<Selecting AllowItemSelection="true" />
<ClientEvents OnItemSelected="clientNodeChecked" />
</ClientSettings>
//javascript.
function clientNodeChecked(sender, eventArgs) {
var dataItem =
eventArgs.get_item();
var childNodes =
dataItem.get_childItems();
if (childNodes === null) {
return;
}
var isChecked =
dataItem.get_selected();
UpdateAllChildren(childNodes, isChecked);
}
function UpdateAllChildren(nodes, checked) {
var i = 0;
var nodeCount =
nodes.length;
for (i = 0; i <
nodeCount; i++) {
//console.log(nodes[i]._element.childNodes);
var found = false;
//$(nodes[i]._element.childNodes).each(function
(index, elmnt) {
//console.log((elmnt));
//if
(index > 0 && $(elmnt).attr('class').indexOf('aspNetDisabled')
>= 0) {
//if
(el.length > 0) {
//
found = true;
//
console.log(el);
//}
//});
//var chk
= $(nodes[i]).find('input[type=checkbox]').first();
//var
disabled = $(chk).attr('disabled');
if (!found) {
nodes[i].set_selected(checked);
}
}
}
Any help would be appreciated.