Witam
Przygotowuje projekt i mam pewien problem z kontrolką TreeView. Mam przygotowaną stronę opartą na master pagu na którym jest właśnie ta kontrolka. Główne węzły tej kontrolki zasilane są danymi z bazy
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeView1.Nodes.Clear();
if (Session["Employee"] != null && ((Validator)Session["Employee"]).Role > 2)
{
WebPages pages = new WebPages();
List<TreeNode> list = pages.CreateTreeNodes(((Validator)Session["Employee"]).Role, -1);
if (pages.ErrorFlag != 1)
{
foreach (TreeNode node in list)
TreeView1.Nodes.Add(node);
}
else
{
Response.Write(pages.ErrorMessage);
}
}
else
{
Response.Redirect("~/employees/fmlogin.aspx");
}
}
}
Liście dla konkretnych węzłów generowane są w momencie kliknięcie.
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
int index = TreeViewSelectedIndex();
if (index >= 0)
{
if (TreeView1.Nodes[index].ChildNodes.Count == 0)
{
WebPages pages = new WebPages();
List<TreeNode> list = pages.CreateNodeLeafs(((Validator)Session["Employee"]).Role,
Convert.ToInt32(TreeView1.SelectedValue));
if (pages.ErrorFlag != 1)
{
foreach (TreeNode node in list)
TreeView1.Nodes[index].ChildNodes.Add(node);
}
else
{
Response.Write(pages.ErrorMessage);
}
}
}
}
Kiedy wybiorę konkretny liść w kontrolce ContentPlaceHolder wyświetlana jest jej zawartość, ale pojawia się teraz niepożądany efekt, mianowicie wraz z jej załadowaniem odpala się kod w zdarzeniu PageLoad tym samym niszczy mi utworzoną wczesniej strukturę w kontrolce TreeView jak się przed tym zabezpieczyć ?