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

2 checkbox in each node

1 Answer 78 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
bala
Top achievements
Rank 1
bala asked on 14 Sep 2009, 01:13 PM
I need 2 checkbox for each node in a treeview, so I use nodetemplate. In that once the parent node checked , all the child node should get selected. is there any property to achieve this, or i have to write javascript for this?

1 Answer, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 15 Sep 2009, 07:39 AM
Hi Bala,

If you are using checkboxes for RadTreeView by setting the CheckBoxes=True, then you could set the CheckChildNodes property to True in order to check all the child nodes when parent node is checked. You can achieve same functionality for CheckBoxes placed in NodeTemplate by adding following client side code.

You could find out both approaches here:
ASPX:
 
<telerik:RadTreeView ID="RadTreeView1" runat="server" CheckBoxes="True" CheckChildNodes="True" OnPreRender="RadTreeView1_PreRender" > 
    <Nodes> 
        <telerik:RadTreeNode runat="server" Text="Root RadTreeNode1"
            <Nodes> 
                <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1"
                <Nodes>                 
                    <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1.1"></telerik:RadTreeNode> 
                    <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 1.2"></telerik:RadTreeNode> 
                </Nodes> 
                </telerik:RadTreeNode> 
                <telerik:RadTreeNode runat="server" Text="Child RadTreeNode 2"
                </telerik:RadTreeNode> 
            </Nodes> 
        </telerik:RadTreeNode>         
    </Nodes> 
    <NodeTemplate> 
    <asp:CheckBox ID="CheckBox1" runat="server" /> 
    </NodeTemplate> 
</telerik:RadTreeView> 

CS:
 
protected void RadTreeView1_PreRender(object sender, EventArgs e) 
    foreach( RadTreeNode node in RadTreeView1.GetAllNodes()) 
    { 
        CheckBox chk = (CheckBox)node.FindControl("CheckBox1"); 
        chk.Attributes.Add("onclick","check('"+chk.ClientID+"','"+node.Text+"')"); 
    } 

JavaScript:
 
<script type="text/javascript"
function check(chkboxID, text) 
    var radtreeview1 = $find('<%= RadTreeView1.ClientID %>'); 
    var node = radtreeview1.findNodeByText(text); 
    var chk = node.findControl('CheckBox1'); 
    var chkbox = document.getElementById(chkboxID); 
    if(chkbox.checked) 
    { 
        for(var i=0; i< node._getAllItems().length; i++) 
        { 
            n = node._getAllItems()[i]; 
            var ch = document.getElementById(n.get_contentElement().getElementsByTagName('input').item(1).id); 
            ch.checked = true
        } 
    } 
    else 
    { 
        for(var i=0; i< node._getAllItems().length; i++) 
        { 
            n = node._getAllItems()[i]; 
            var ch = document.getElementById(n.get_contentElement().getElementsByTagName('input').item(1).id); 
            ch.checked = false
        } 
    } 
</script> 

-Shinu.
Tags
TreeView
Asked by
bala
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Share this question
or