Home All Groups Group Topic Archive Search About

Treeview SelectedNodeStyle Problem

Author
3 Jul 2006 6:22 PM
Sunny
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

Author
4 Jul 2006 5:51 AM
Bhuvana
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]
Fix windows and pc errors, click for free system scan

Author
4 Jul 2006 6:19 AM
ValliM
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
>
Author
5 Jul 2006 2:48 PM
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
> >

Bookmark and Share