Friday, May 15, 2009

Bind Treeview in .Net

Hello friends

Here the code for bind treeview up to four level.In this example i have bind Subject-->SubSubject-->Chapter-->Topic.

#region BIND TREE VIEW NODE

#region BIND Subject
private void BindMaterial()
{

strQuery = "SELECT Subject,SubjectId FROM V_GetStudentMaterial GROUP BY Subject,SubjectId ";


DataTable dtMaterial;
dtMaterial = ObjB.SelectMaterial(strQuery);
if(dtMaterial.Rows.Count>0)
{
tvMaterail.Nodes.Clear();
for (int iTreeSubject = 0; iTreeSubject < dtMaterial.Rows.Count; iTreeSubject++)
{
TreeNode SubjectNode = new TreeNode();
SubjectNode.Text = FormatStrDecode(dtMaterial.Rows[iTreeSubject]["Subject"].ToString());
SubjectNode.Value = dtMaterial.Rows[iTreeSubject]["SubjectId"].ToString();
SubjectNode.ToolTip = FormatStrDecode(dtMaterial.Rows[iTreeSubject]["Subject"].ToString());
SubjectNode.Expand();
//Bind Subject
tvMaterail.Nodes.Add(SubjectNode);
int intTreeSubjectId = int.Parse(SubjectNode.Value.ToString());
BindSubSubjectNodes(SubjectNode, intTreeSubjectId);
}
trMaterial.Visible = true;
lblMessage.Text = "";
}
else
{
lblMessage.Text = ReadXMLFile_Admin(FormName.Topic, Task.Materialnotfound);
trMaterial.Visible = false;
}

}
#endregion

#region BIND SUB SUBJECT NODE
private void BindSubSubjectNodes(TreeNode ParentSubjectNode, int intTreeSubjectId)
{
try
{
strQuery = "";
strQuery = "SELECT Subject,SubjectId,SubSubject,SubSubjectId FROM V_GetStudentMaterial WHERE SubjectId=" + intTreeSubjectId + " GROUP BY Subject,SubjectId,SubSubject,SubSubjectId";
DataTable dtSubSubject;
dtSubSubject = ObjB.SelectMaterial(strQuery);
if (dtSubSubject.Rows.Count > 0)
{
for (int intiSubSubject = 0; intiSubSubject < dtSubSubject.Rows.Count; intiSubSubject++)
{
TreeNode SubSubjectNode = new TreeNode();
SubSubjectNode.Text = dtSubSubject.Rows[intiSubSubject]["SubSubject"].ToString();
SubSubjectNode.Value = dtSubSubject.Rows[intiSubSubject]["SubSubjectId"].ToString();
SubSubjectNode.ToolTip = FormatStrDecode(dtSubSubject.Rows[intiSubSubject]["SubSubject"].ToString());
//Bind Sub Subject
ParentSubjectNode.ChildNodes.Add(SubSubjectNode);
int intSubSubjectId = int.Parse(SubSubjectNode.Value.ToString());
BindChildChapter(SubSubjectNode, intSubSubjectId);
ParentSubjectNode.Collapse();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
#endregion

#region BIND SUB SUBJECT CHAPTER NODE
private void BindChildChapter(TreeNode ParentSubSubjectNode, int intTreeSubSubjectId)
{
try
{
strQuery = "";
strQuery = "SELECT Subject,SubjectId,SubSubject,SubSubjectId,ChapterId,ChapterName FROM V_GetStudentMaterial WHERE SubSubjectId=" + intTreeSubSubjectId + " GROUP BY Subject,SubjectId,SubSubject,SubSubjectId,ChapterId,ChapterName";
DataTable dtChapter;
dtChapter = ObjB.SelectMaterial(strQuery);
if (dtChapter.Rows.Count > 0)
{
for (int intiChapter = 0; intiChapter < dtChapter.Rows.Count; intiChapter++)
{
TreeNode ChapterNode = new TreeNode();
ChapterNode.Text = dtChapter.Rows[intiChapter]["ChapterName"].ToString();
ChapterNode.Value = dtChapter.Rows[intiChapter]["ChapterId"].ToString();
ChapterNode.ToolTip = FormatStrDecode(dtChapter.Rows[intiChapter]["ChapterName"].ToString());
//Bind Chapter
ParentSubSubjectNode.ChildNodes.Add(ChapterNode);
int intChapterId = int.Parse(ChapterNode.Value.ToString());
BindChildChapterTopic(ChapterNode, intChapterId);
ParentSubSubjectNode.Collapse();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
#endregion

#region BIND CHAPTER TOPIC NODE
private void BindChildChapterTopic(TreeNode ParentChapterNode, int intTreeChapterId)
{
try
{
strQuery = "";
strQuery = "SELECT Subject,SubjectId,SubSubject,SubSubjectId,ChapterId,ChapterName,TopicId,Topic FROM V_GetStudentMaterial WHERE ChapterId=" + intTreeChapterId + " GROUP BY Subject,SubjectId,SubSubject,SubSubjectId,ChapterId,ChapterName,TopicId,Topic";
DataTable dtTopic;
dtTopic = ObjB.SelectMaterial(strQuery);
if (dtTopic.Rows.Count > 0)
{
for (int intiTopic = 0; intiTopic < dtTopic.Rows.Count; intiTopic++)
{
TreeNode ChapterNode = new TreeNode();
ChapterNode.Text = dtTopic.Rows[intiTopic]["Topic"].ToString();
ChapterNode.Value = dtTopic.Rows[intiTopic]["TopicId"].ToString();
ChapterNode.ToolTip = "Click here to view " + FormatStrDecode(dtTopic.Rows[intiTopic]["Topic"].ToString());
ChapterNode.NavigateUrl = "ContentDetail.aspx?TopicId=" + dtTopic.Rows[intiTopic]["TopicId"].ToString();
//Bind Topic
ParentChapterNode.ChildNodes.Add(ChapterNode);
ParentChapterNode.Collapse();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
#endregion


#endregion

Thanks & Regards
Jignesh Patel

No comments:

Post a Comment