public void GetNodes()
{
string Query = "Select * from table where IsActive='true'";
DataSet ds =objContent.ExecuteQuery(Query);
ViewState["Datas"] = ds;
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode Parent = new TreeNode();
if (ds.Tables[0].Rows[i]["Parent_Id"].ToString() == "0")
{
Parent.Text = Convert.ToString(ds.Tables[0].Rows[i]["MenuName"]);
Parent.Value = Convert.ToString(ds.Tables[0].Rows[i]["MenuId"]);
GetchildNodes(Parent, Convert.ToInt32(ds.Tables[0].Rows[i]["MenuId"]));
TreeView1.Nodes.Add(Parent);
}
if (i == 0)
{
CompleteNodePath(Parent);
}
}
BindContent(Convert.ToInt32(ds.Tables[0].Rows[0]["MenuId"].ToString()));
}
}
public void GetchildNodes(TreeNode Parent, Int32 childNode)
{
DataSet ds = new DataSet();
ds = (DataSet)ViewState["Datas"];
int NoofChilds = 0;
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (Convert.ToInt32(ds.Tables[0].Rows[i]["Parent_Id"]) == childNode)
{
NoofChilds += 1;
}
}
}
if (NoofChilds > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (Convert.ToInt32(ds.Tables[0].Rows[i]["Parent_Id"]) == childNode)
{
TreeNode child = new TreeNode();
child.Text = Convert.ToString(ds.Tables[0].Rows[i]["MenuName"]);
child.Value = Convert.ToString(ds.Tables[0].Rows[i]["MenuId"]);
Parent.ChildNodes.Add(child);
GetchildNodes(child, Convert.ToInt16(ds.Tables[0].Rows[i]["MenuId"]));
}
}
}
ds.Dispose();
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
TreeNode node = TreeView1.SelectedNode;
int NodeId = Convert.ToInt32(node.Value);
BindContent(NodeId);
CompleteNodePath(node);
}
public void CompleteNodePath(TreeNode node)
{
lbl_SelectedNode.Text = "Topic : ";
String pathStr = node.Text;
string separator = "\\";
TreeView1.PathSeparator = Convert.ToChar(separator);
if (node.Depth != 0)
{
while (node.Parent.Text != "")
{
pathStr = node.Parent.Text + this.TreeView1.PathSeparator + pathStr;
node = node.Parent;
if (node.Depth == 0)
{
break;
}
else
{
}
}
}
else
{
pathStr = node.Text;
}
if (pathStr.Contains("\\"))
{
string[] path = pathStr.Split('\\');
for (int i = 0; i < path.Length; i++)
{
if (i != path.Length - 1)
{
lbl_SelectedNode.Text += path[i].ToString() + " -->";
}
else
{
lbl_SelectedNode.Text += path[i].ToString();
}
}
}
else
{
lbl_SelectedNode.Text += node.Text;
}
}
{
string Query = "Select * from table where IsActive='true'";
DataSet ds =objContent.ExecuteQuery(Query);
ViewState["Datas"] = ds;
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode Parent = new TreeNode();
if (ds.Tables[0].Rows[i]["Parent_Id"].ToString() == "0")
{
Parent.Text = Convert.ToString(ds.Tables[0].Rows[i]["MenuName"]);
Parent.Value = Convert.ToString(ds.Tables[0].Rows[i]["MenuId"]);
GetchildNodes(Parent, Convert.ToInt32(ds.Tables[0].Rows[i]["MenuId"]));
TreeView1.Nodes.Add(Parent);
}
if (i == 0)
{
CompleteNodePath(Parent);
}
}
BindContent(Convert.ToInt32(ds.Tables[0].Rows[0]["MenuId"].ToString()));
}
}
public void GetchildNodes(TreeNode Parent, Int32 childNode)
{
DataSet ds = new DataSet();
ds = (DataSet)ViewState["Datas"];
int NoofChilds = 0;
if (ds.Tables.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (Convert.ToInt32(ds.Tables[0].Rows[i]["Parent_Id"]) == childNode)
{
NoofChilds += 1;
}
}
}
if (NoofChilds > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (Convert.ToInt32(ds.Tables[0].Rows[i]["Parent_Id"]) == childNode)
{
TreeNode child = new TreeNode();
child.Text = Convert.ToString(ds.Tables[0].Rows[i]["MenuName"]);
child.Value = Convert.ToString(ds.Tables[0].Rows[i]["MenuId"]);
Parent.ChildNodes.Add(child);
GetchildNodes(child, Convert.ToInt16(ds.Tables[0].Rows[i]["MenuId"]));
}
}
}
ds.Dispose();
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
TreeNode node = TreeView1.SelectedNode;
int NodeId = Convert.ToInt32(node.Value);
BindContent(NodeId);
CompleteNodePath(node);
}
public void CompleteNodePath(TreeNode node)
{
lbl_SelectedNode.Text = "Topic : ";
String pathStr = node.Text;
string separator = "\\";
TreeView1.PathSeparator = Convert.ToChar(separator);
if (node.Depth != 0)
{
while (node.Parent.Text != "")
{
pathStr = node.Parent.Text + this.TreeView1.PathSeparator + pathStr;
node = node.Parent;
if (node.Depth == 0)
{
break;
}
else
{
}
}
}
else
{
pathStr = node.Text;
}
if (pathStr.Contains("\\"))
{
string[] path = pathStr.Split('\\');
for (int i = 0; i < path.Length; i++)
{
if (i != path.Length - 1)
{
lbl_SelectedNode.Text += path[i].ToString() + " -->";
}
else
{
lbl_SelectedNode.Text += path[i].ToString();
}
}
}
else
{
lbl_SelectedNode.Text += node.Text;
}
}
Binding TreeView to parent node and child node in .NET
ReplyDelete