|
code
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Treeview SelectedNodeStyle ProblemIn my application, I use treeview inside a frame so when a tree node is clicked, it will direct to the main content only. I have set the selectednodeStyle with BackColor="Yellow", but when I selected the first node and then sleect another the back color is still yellow for the former one. The OnSelectedNodeChange event is never get fired. Below is my code excerpt: In TreePane.aspx <div> <asp:TreeView ID="TreeView1" runat="server" CollapseImageUrl="~/Images/treeMinus.gif" ExpandImageUrl="~/Images/treePlus.gif" Font-Names="Arial" Font-Size="8pt" ForeColor="Black" OnSelectedNodeChanged="OnSelectedNodeChange"> <NodeStyle HorizontalPadding="10px" /> <SelectedNodeStyle BackColor="Yellow" /> <Nodes> <asp:TreeNode ImageUrl="~/Images/test1.ico" NavigateUrl="~/Management.aspx" Target="maincontent" Text="Management" Value="1"> <asp:TreeNode NavigateUrl="~/Accounting.aspx" Target="maincontent" Text="Accounting" Value="3"></asp:TreeNode> </asp:TreeNode> <asp:TreeNode ImageUrl="~/Images/test2.ico" NavigateUrl="~/Customer Services.aspx" Target="maincontent" Text="Customer Services" Value="2"></asp:TreeNode> </Nodes> </asp:TreeView> </div> On the default page.aspx: <frameset frameborder="no" border="0" frameSpacing="0" frameBorder="0" cols="220" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0"> <FRAMESET rows="30,*"> <FRAME id="toolbar" src="HeaderPane.aspx" name="tooobar"> <FRAMESET MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0"> <FRAMESET cols="200,*" framespacing="0" frameborder="yes" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0"> <FRAME id="leftmenu" src="TreePane.aspx" name="leftmenu"> <frame id="maincontent" name="rightcontent" src="test1.aspx" name="rightcontent"> </FRAMESET> </FRAMESET> </FRAMESET> </frameset> I would appreciate if anyone can help me with this problem. Thanks in advance, Sunny Hi Sunny,
The text of a node in the TreeView control can be in one of two modes: selection mode or navigation mode. When a node is in navigation mode, all selection events are disabled for that node. Clicking the node in navigation mode directs the user to the specified URL. You have used the NavigateUrl for all the nodes, so only OnSelectedNodeChanged is not getting fired. Refer this link for more information: http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.treenode.aspx -Bhuvana [http://www.syncfusion.com/faq/aspnet/default.aspx] Hi Sunny,
As per your coding once you click the TreeNode its NavigateUrl property is executed , so that the OnSelectedNodeChange event is not getting fired. To get rid of it you could set the property programmatically , so that one TreeNode backcolor is alone changed.Remove the NavigationUrl property in the design mode and try with the function, protected void OnSelectedNodeChange(object sender, EventArgs e) { if (TreeView1.SelectedNode.Text == "Management") { TreeView1.SelectedNode.NavigateUrl="~/Management.aspx"; } else if (TreeView1.SelectedNode.Text == "Accounting") { TreeView1.SelectedNode.NavigateUrl ="~/Accounting.aspx"; } if (TreeView1.SelectedNode.Text == "Customer Services") { TreeView1.SelectedNode.NavigateUrl = "~/Customer Services.aspx"; } } Regards, valli Show quoteHide quote "Sunny" <sunny***@yahoo.com> wrote in message news:1151950940.650895.35910@p79g2000cwp.googlegroups.com... > Hi, > > In my application, I use treeview inside a frame so when a tree node is > clicked, it will direct to the main content only. I have set the > selectednodeStyle with BackColor="Yellow", but when I selected the > first node and then sleect another the back color is still yellow for > the former one. The OnSelectedNodeChange event is never get fired. > Below is my code excerpt: > > In TreePane.aspx > > <div> > <asp:TreeView ID="TreeView1" runat="server" > CollapseImageUrl="~/Images/treeMinus.gif" > ExpandImageUrl="~/Images/treePlus.gif" Font-Names="Arial" > Font-Size="8pt" ForeColor="Black" > OnSelectedNodeChanged="OnSelectedNodeChange"> > <NodeStyle HorizontalPadding="10px" /> > <SelectedNodeStyle BackColor="Yellow" /> > <Nodes> > <asp:TreeNode ImageUrl="~/Images/test1.ico" > NavigateUrl="~/Management.aspx" > Target="maincontent" Text="Management" Value="1"> > <asp:TreeNode NavigateUrl="~/Accounting.aspx" > Target="maincontent" Text="Accounting" > Value="3"></asp:TreeNode> > </asp:TreeNode> > <asp:TreeNode ImageUrl="~/Images/test2.ico" > NavigateUrl="~/Customer Services.aspx" > Target="maincontent" Text="Customer Services" > Value="2"></asp:TreeNode> > </Nodes> > </asp:TreeView> > </div> > > On the default page.aspx: > > <frameset frameborder="no" border="0" frameSpacing="0" frameBorder="0" > cols="220" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" > TOPMARGIN="0"> > <FRAMESET rows="30,*"> > <FRAME id="toolbar" src="HeaderPane.aspx" name="tooobar"> > <FRAMESET MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" > TOPMARGIN="0"> > <FRAMESET cols="200,*" framespacing="0" frameborder="yes" > MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0"> > <FRAME id="leftmenu" src="TreePane.aspx" name="leftmenu"> > <frame id="maincontent" name="rightcontent" src="test1.aspx" > name="rightcontent"> > </FRAMESET> > </FRAMESET> > </FRAMESET> > </frameset> > > > I would appreciate if anyone can help me with this problem. > > Thanks in advance, > > Sunny > Hi Valli,
Thank you for your reply. I tested out the change you suggested but I still have difficulty getting the highlight to highlight just the currently selected node. At present if I set the background color in the stylesheet, the highlight will not disappear when I select the new node. I want to have only the currentl7y selected node highlight (having the background color in yellow). Do you have any suggestion on how I should approach this problem? Sunny ValliM wrote: Show quoteHide quote > Hi Sunny, > > As per your coding once you click the TreeNode its NavigateUrl property is > executed , so that the OnSelectedNodeChange event is not getting fired. To > get rid of it you could set the property programmatically , so that one > TreeNode backcolor is alone changed.Remove the NavigationUrl property in the > design mode and try with the function, > protected void OnSelectedNodeChange(object sender, EventArgs e) > > { > > if (TreeView1.SelectedNode.Text == "Management") > > { > > TreeView1.SelectedNode.NavigateUrl="~/Management.aspx"; > > } > > else if (TreeView1.SelectedNode.Text == "Accounting") > > { > > TreeView1.SelectedNode.NavigateUrl ="~/Accounting.aspx"; > > } > > if (TreeView1.SelectedNode.Text == "Customer Services") > > { > > TreeView1.SelectedNode.NavigateUrl = "~/Customer Services.aspx"; > > } > > } > > > > Regards, > > valli > > > > "Sunny" <sunny***@yahoo.com> wrote in message > news:1151950940.650895.35910@p79g2000cwp.googlegroups.com... > > Hi, > > > > In my application, I use treeview inside a frame so when a tree node is > > clicked, it will direct to the main content only. I have set the > > selectednodeStyle with BackColor="Yellow", but when I selected the > > first node and then sleect another the back color is still yellow for > > the former one. The OnSelectedNodeChange event is never get fired. > > Below is my code excerpt: > > > > In TreePane.aspx > > > > <div> > > <asp:TreeView ID="TreeView1" runat="server" > > CollapseImageUrl="~/Images/treeMinus.gif" > > ExpandImageUrl="~/Images/treePlus.gif" Font-Names="Arial" > > Font-Size="8pt" ForeColor="Black" > > OnSelectedNodeChanged="OnSelectedNodeChange"> > > <NodeStyle HorizontalPadding="10px" /> > > <SelectedNodeStyle BackColor="Yellow" /> > > <Nodes> > > <asp:TreeNode ImageUrl="~/Images/test1.ico" > > NavigateUrl="~/Management.aspx" > > Target="maincontent" Text="Management" Value="1"> > > <asp:TreeNode NavigateUrl="~/Accounting.aspx" > > Target="maincontent" Text="Accounting" > > Value="3"></asp:TreeNode> > > </asp:TreeNode> > > <asp:TreeNode ImageUrl="~/Images/test2.ico" > > NavigateUrl="~/Customer Services.aspx" > > Target="maincontent" Text="Customer Services" > > Value="2"></asp:TreeNode> > > </Nodes> > > </asp:TreeView> > > </div> > > > > On the default page.aspx: > > > > <frameset frameborder="no" border="0" frameSpacing="0" frameBorder="0" > > cols="220" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" > > TOPMARGIN="0"> > > <FRAMESET rows="30,*"> > > <FRAME id="toolbar" src="HeaderPane.aspx" name="tooobar"> > > <FRAMESET MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" > > TOPMARGIN="0"> > > <FRAMESET cols="200,*" framespacing="0" frameborder="yes" > > MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0"> > > <FRAME id="leftmenu" src="TreePane.aspx" name="leftmenu"> > > <frame id="maincontent" name="rightcontent" src="test1.aspx" > > name="rightcontent"> > > </FRAMESET> > > </FRAMESET> > > </FRAMESET> > > </frameset> > > > > > > I would appreciate if anyone can help me with this problem. > > > > Thanks in advance, > > > > Sunny > >
Other interesting topics
Passing values to user controls - naughty problem
Why it doesn't work? Wizard control in 2.0 and dynamic items web controls install is this possible? Can't access webpage's controls from the code-behind file after putting it in a <asp:LoginView/> Problem with spaces in values of the DataTextField property of datagrid control Interrogating cells on current row for GridView CheckBoxList Control column width Best way to save properties (ie. text) on webcontrols for reloading (asp.net 2.0) |
|||||||||||||||||||||||