Jul 19, 2011, 9:53 PM
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
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
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!
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!