This could possibly be a very simple problem.

  1. #1

    This could possibly be a very simple problem.

    Hello guys,

    First of all, this is my first post in here and I'd like to thank the community (especially the developers and the members who regularly post in here) for this fabulous site and the marvelous component that is Ext.Net. Thanks guys, your work is very much appreciated!

    I've been looking for a tree-view control, and I have found the perfect match in the ext:TreePanel control. However, I am now stuck with something really stupid - I cannot make elements in my tree respond to clicks! What am I doing wrong? I've been trying for quite some time now...

    Here is my code:

    ManageFolders.aspx

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ManageFolders.aspx.cs" Inherits="ManageFolders" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceholderLeft" Runat="Server">
    
        <ext:ResourceManager ID="ResourceManager1" runat="server">
        </ext:ResourceManager>
        <ext:TreePanel ID="TreePanelFolders" runat="server" Height="300" Title="My Folders" Border="false">
        </ext:TreePanel>
    
    </asp:Content>
    
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceholder1" Runat="Server">
    
    </asp:Content>

    And the following is my CodeBehind - you may want to look at the method "AddFoldersRecursive" - this is where I actually add the nodes one by one and add the listeners.
    ManageFolders.aspx.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Ext.Net;
    
    public partial class ManageFolders : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                DataSet.dms_folderRow row = null;
    
                DataSetTableAdapters.dms_folderTableAdapter folderAdap = new DataSetTableAdapters.dms_folderTableAdapter();
                DataSet.dms_folderDataTable folderDt = folderAdap.GetDataByRoot();
    
                for (int i = 0; i < folderDt.Rows.Count; i++)
                {
                    row = (DataSet.dms_folderRow)folderDt.Rows[i];
                    Ext.Net.TreeNode t = new Ext.Net.TreeNode(row.name, Icon.Folder);
                    this.TreePanelFolders.Root.Add(t);
                    AddFoldersRecursive(t, row, folderAdap);
                }
            }
        }
    
        private void AddFoldersRecursive(Ext.Net.TreeNode t, DataSet.dms_folderRow row, DataSetTableAdapters.dms_folderTableAdapter adapter)
        {
            DataSet.dms_folderDataTable folderDt = adapter.GetDataByParent(row.id);
            if (folderDt.Rows.Count > 0)
            {
                foreach (DataSet.dms_folderRow folder in folderDt)
                {
                    Ext.Net.TreeNode newNode = new Ext.Net.TreeNode(folder.name, Icon.Folder);
                    newNode.Listeners.Click.Handler = "#{TreePanelFolders}.submitNodes();";
                    //newNode.Listeners.Expand.Handler = "#{TreePanelFolders}.submitNodes();";
                    t.Nodes.Add(newNode);
                    AddFoldersRecursive(newNode, folder, adapter);
                    
    
                    if (!String.IsNullOrEmpty(Page.Request.QueryString["id"]))
                    {
                        if (Int32.Parse(Page.Request.QueryString["id"]) == folder.id)
                        {
                            newNode.Expanded = true;
                            Ext.Net.TreeNode p = (Ext.Net.TreeNode)newNode.ParentNode;
                            while (p != null)
                            {
                                p.Expanded = true;
                                p = (Ext.Net.TreeNode)p.ParentNode;
                            }
    
                            this.TreePanelFolders.SelectNode(newNode.NodeID);
                        }
                    }
                }
            }
        }
    
        protected void SubmitNodes()
        {
            X.Msg.Alert("Submit", "You have submitted ").Show();
        }
    
        protected void SubmitNodes(object sender, SubmitEventArgs e)
        {
            X.Msg.Alert("Submit", "You have submitted " + e.RootNode.Children.Count + " nodes").Show();
        }
    }
    --

    Basically what I'm trying to do here is to create a tree view which literally represents a set of folders in my database. I am then trying to hook up a listener event to each one of my node, but really, it's not working :'(

    Help!
  2. #2
    Hi,

    I don't see where you attach SubmitNodes handler, add the following property to the tree
    
    OnSubmit="SubmitNodes"
  3. #3

    It worked!

    Dear Vladimir,

    Thank you for your prompt response. You are right, I didn't put the SubmitNodes handler! However, when I debug the code, I noticed that the sender property in the SubmitNodes method is actually set to the TreePanel itself, and not the TreeNode which was clicked :(

    How can I know which node was clicked?

    Sorry for the bother and thanks for your time!
    Rowan


    Quote Originally Posted by Vladimir View Post
    Hi,

    I don't see where you attach SubmitNodes handler, add the following property to the tree
    
    OnSubmit="SubmitNodes"

Similar Threads

  1. [CLOSED] Loading message in Multicombo and possibly in other controls
    By softmachine2011 in forum 2.x Legacy Premium Help
    Replies: 2
    Last Post: Aug 02, 2012, 2:39 PM
  2. Replies: 4
    Last Post: Apr 05, 2012, 2:38 PM
  3. [CLOSED] Simple or not ?
    By sisa in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Sep 20, 2011, 7:59 AM
  4. [CLOSED] Simple Problem - but can't find the Entrypoit :-(
    By sisa in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: May 24, 2011, 11:22 AM
  5. Its simple but Need help
    By kutbinahar in forum 1.x Help
    Replies: 0
    Last Post: Mar 05, 2011, 8:00 PM

Tags for this Thread

Posting Permissions