This is a migrated thread and some comments may be shown as answers.

Error wen using set_selected client api

2 Answers 49 Views
TreeList
This is a migrated thread and some comments may be shown as answers.
AnneArents
Top achievements
Rank 1
AnneArents asked on 26 Jan 2015, 02:11 PM
Hi,

I am using a RadTreeList control and I want to set the selected property (checkbox) of a row, depending on a value from the datasource.
This is my code:

<telerik:RadTreeList ID="lstAanbod" runat="server" CssClass="_radgrid" OnNeedDataSource="lstAanbod_NeedDataSource" DataKeyNames="NR" ParentDataKeyNames="PARENT_NR" ClientDataKeyNames="DOSSIER_ID, PROFIEL_ID, GESELECTEERD"  EnableEmbeddedSkins="false" BorderStyle="None" GridLines="None" ShowFooter="true" AutoGenerateColumns="false" AllowMultiItemSelection="true">
    <ItemStyle HorizontalAlign="Left"></ItemStyle>
    <Columns>
        <telerik:TreeListSelectColumn HeaderStyle-Width="38px" UniqueName="SelectColumn"></telerik:TreeListSelectColumn>                   
        <telerik:TreeListBoundColumn HeaderStyle-Width="10%" DataField="CODE" HeaderText="Code"></telerik:TreeListBoundColumn>
        <telerik:TreeListBoundColumn HeaderStyle-Width="60%" DataField="TITEL" HeaderText="Titel"></telerik:TreeListBoundColumn>
        <telerik:TreeListBoundColumn HeaderStyle-Width="10%" DataField="NIVEAU" HeaderText="Niveau"></telerik:TreeListBoundColumn>
        <telerik:TreeListBoundColumn HeaderStyle-Width="10%" DataField="DOSSIER_ID" HeaderText="Niveau" Visible="false"></telerik:TreeListBoundColumn>
        <telerik:TreeListBoundColumn HeaderStyle-Width="10%" DataField="PROFIEL_ID" HeaderText="Niveau" Visible="false"></telerik:TreeListBoundColumn>     
    </Columns>         
    <ClientSettings Selecting-AllowItemSelection="true" Selecting-UseSelectColumnOnly="true" Selecting-AllowToggleSelection="true" ClientEvents-OnItemSelected="OnClientNodeSelected" ClientEvents-OnTreeListCreated="treeListCreated"></ClientSettings>     
</telerik:RadTreeList>


function UpdateAllChildren(currNode, nodes, nodecount, checked) {           
    var i;
    for (i = 0; i < nodecount; i++) {
        if (checked) {
            nodes[i].set_selected(true);
        }
        else {
            nodes[i].set_selected(false);
        }
    }
}
 
function treeListCreated(sender, args) {
    var items = sender.get_dataItems();
     
    for (var i = 0; i < items.length; i++) {
        var item = items[i];               
        if (item.get_dataKeyValue("GESELECTEERD") == "True") {                   
            item.set_selected(true);
        }
    }
}

However, when I run my page, I get an error on the line 'item_set_selected(true)' :

Unhandled exception at line 808, column 27 in http://localhost:11488/ScriptResource.axd? ...
0x800a138f - Runtime-fout JavaScript: Unable to get property '_selectedIndexes' of undefined or null referenced

What am I doing wrong?

2 Answers, 1 is accepted

Sort by
0
AnneArents
Top achievements
Rank 1
answered on 26 Jan 2015, 02:16 PM
Edit: I had forgotten one javascript function:

function OnClientNodeSelected(sender, args) {  
    var currNode = args.get_item();
    var childNodes = currNode.get_childItems();
    var nodeCount = childNodes.length;           
    if (nodeCount > 0) {
        var isChecked = currNode.get_selected();
        UpdateAllChildren(currNode, childNodes, nodeCount, isChecked);
    }
}
0
Kostadin
Telerik team
answered on 29 Jan 2015, 09:01 AM
Hi Scholten,

Note that OnTreeListCreated client event is fired to early and its items are still not created. I would recommend you to use pageLoad client event to select the items. Please check out the following code snippet.
function pageLoad() {
    var treeList = $find('<%= RadTreeList1.ClientID %>');
    var items = treeList.get_dataItems();
 
    for (var i = 0; i < items.length; i++) {
        var item = items[i];
        debugger;
        if (item.get_dataKeyValue("GESELECTEERD") == "True") {
            debugger;
            item.set_selected(true);
        }
    }
}


Regards,
Kostadin
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
TreeList
Asked by
AnneArents
Top achievements
Rank 1
Answers by
AnneArents
Top achievements
Rank 1
Kostadin
Telerik team
Share this question
or