W
Wannabe
I have a treeview setup on my page. In case it is relevant, it is set in an
accordion, which is inside an update panel. When I click the treeview node, a
page loads on the right side of my browser as it should. When I click the
same node, the right side of my browser goes blank. I do not want it to go
blank if the user clicks the same node. I would like it to not change. At
this point, I do not know how it is happening. Is there a property I can set
to keep this from happening? Can someone explain this to me? Thank you.
Below is the markup and the event that is run on first click:
<asp:UpdatePanel ID="upMain" runat="server">
<ContentTemplate>
<ajaxToolkit:Accordion ID="AccordionHome" runat="server"
ContentCssClass="accordionContent" FadeTransitions="true"
FramesPerSecond="40" HeaderCssClass="accordionHeader"
RequireOpenedPane="false" SelectedIndex="9" SuppressHeaderPostbacks="true"
TransitionDuration="40" Width="275px" AutoSize="None">
<Panes>
<ajaxToolkit:AccordionPane ID="apAccountSetup" runat="server"
ToolTip="Click to Expand / Collapse">
<Header>
<a class="accordionLink" href=""> 1A Account Setup</a>
</Header>
<Content>
<asp:ImageButton ID="btnNoteClient" runat="server"
ImageUrl="Images/Accordion/notes.gif" ImageAlign="Right"
CausesValidation="False" CommandName="Note" CommandArgument="Client"
ToolTip="Development Notes" OnClick="btnNoteClient_Click" />
<asp:TreeView ID="tvAccountSetup" runat="server"
SelectedNodeStyle-BackColor="Yellow" Font-Size="10pt" Font-Bold="True"
NodeStyle-HorizontalPadding="5px"
OnSelectedNodeChanged="tvAccountSetup_SelectedNodeChanged">
<Nodes>
<asp:TreeNode Value="Insights" Text="Insights"
ImageUrl="Images/Accordion/lightbulb.gif" />
<asp:TreeNode Value="ClientProfile" Text="Airline Profile"
ImageUrl="Images/Accordion/icon_left.gif" />
<asp:TreeNode Value="ClientBase" Text="Primary Program Currency"
ImageUrl="Images/Accordion/icon_left.gif" />
<asp:TreeNode Value="Help" Text="Help"
ImageUrl="Images/Accordion/qmark.gif" />
</Nodes>
</asp:TreeView>
</Content>
</ajaxToolkit:AccordionPane>
</Panes>
</ajaxToolkit:Accordion>
</ContentTemplate>
</asp:UpdatePanel>
protected void tvAccountSetup_SelectedNodeChanged(object sender, EventArgs e)
{
//In case the page cannot be found, with this code in a try catch, it will
not error.
try
{
PlaceHolder1.Controls.Clear();
//Return the ID of the treeview. This will correspond to
//the folder the user control is located under.
//all tree views on the default page use the same two-
//character prefix naming convention.
Control c = Page.LoadControl(@"UserControls\" +
tvAccountSetup.ID.Substring(2) + @"\" + tvAccountSetup.SelectedValue +
".ascx");
PlaceHolder1.Controls.Add(c);
}
catch
{
}
}
accordion, which is inside an update panel. When I click the treeview node, a
page loads on the right side of my browser as it should. When I click the
same node, the right side of my browser goes blank. I do not want it to go
blank if the user clicks the same node. I would like it to not change. At
this point, I do not know how it is happening. Is there a property I can set
to keep this from happening? Can someone explain this to me? Thank you.
Below is the markup and the event that is run on first click:
<asp:UpdatePanel ID="upMain" runat="server">
<ContentTemplate>
<ajaxToolkit:Accordion ID="AccordionHome" runat="server"
ContentCssClass="accordionContent" FadeTransitions="true"
FramesPerSecond="40" HeaderCssClass="accordionHeader"
RequireOpenedPane="false" SelectedIndex="9" SuppressHeaderPostbacks="true"
TransitionDuration="40" Width="275px" AutoSize="None">
<Panes>
<ajaxToolkit:AccordionPane ID="apAccountSetup" runat="server"
ToolTip="Click to Expand / Collapse">
<Header>
<a class="accordionLink" href=""> 1A Account Setup</a>
</Header>
<Content>
<asp:ImageButton ID="btnNoteClient" runat="server"
ImageUrl="Images/Accordion/notes.gif" ImageAlign="Right"
CausesValidation="False" CommandName="Note" CommandArgument="Client"
ToolTip="Development Notes" OnClick="btnNoteClient_Click" />
<asp:TreeView ID="tvAccountSetup" runat="server"
SelectedNodeStyle-BackColor="Yellow" Font-Size="10pt" Font-Bold="True"
NodeStyle-HorizontalPadding="5px"
OnSelectedNodeChanged="tvAccountSetup_SelectedNodeChanged">
<Nodes>
<asp:TreeNode Value="Insights" Text="Insights"
ImageUrl="Images/Accordion/lightbulb.gif" />
<asp:TreeNode Value="ClientProfile" Text="Airline Profile"
ImageUrl="Images/Accordion/icon_left.gif" />
<asp:TreeNode Value="ClientBase" Text="Primary Program Currency"
ImageUrl="Images/Accordion/icon_left.gif" />
<asp:TreeNode Value="Help" Text="Help"
ImageUrl="Images/Accordion/qmark.gif" />
</Nodes>
</asp:TreeView>
</Content>
</ajaxToolkit:AccordionPane>
</Panes>
</ajaxToolkit:Accordion>
</ContentTemplate>
</asp:UpdatePanel>
protected void tvAccountSetup_SelectedNodeChanged(object sender, EventArgs e)
{
//In case the page cannot be found, with this code in a try catch, it will
not error.
try
{
PlaceHolder1.Controls.Clear();
//Return the ID of the treeview. This will correspond to
//the folder the user control is located under.
//all tree views on the default page use the same two-
//character prefix naming convention.
Control c = Page.LoadControl(@"UserControls\" +
tvAccountSetup.ID.Substring(2) + @"\" + tvAccountSetup.SelectedValue +
".ascx");
PlaceHolder1.Controls.Add(c);
}
catch
{
}
}