如何在点击childnode asp.net Visual Studio 2008时停止自动折叠树视图结构

时间:2012-03-06 06:22:46

标签: asp.net c#-3.0

我在C#3.5和Visual Studio 2008中使用ASP.NET。我正在使用母版页和内容页。我在母版页中有一个树视图菜单,当用户选择任何菜单项时,我会重定向到该内容页面。

我的问题是,在用户导航到内容页面后,所有treenodes刷新并且结构已折叠。我希望所选的treenode保持扩展。 任何人都可以帮我解决这个问题吗?

首先我的树视图正常工作。但是树视图中的某些节点没有重定向到表单意味着第一次每个节点都转到相应的表单。但是第二次它没有得到它。当我设置AutoEventWireup =“false”然后那个问题解决了。生活节点工作得很好。出现了问题。树视图中的节点正在折叠。当我们选择父子节点,子节点,然后当我们点击节点时,子节点会自动返回到父节点。

如何实现?

下面附上我的代码:

MasterPage.master:

<asp:TreeView runat="server" ID="treeModule"   
BorderColor="White" Height="1310px"  
                                      OnSelectedNodeChanged="treeModule_SelectedNodeChanged" 
OnTreeNodeExpanded ="treeModule_TreeNodeExpanded"
style= "margin-top: 0px" BackColor="#336699" BorderStyle="Inset" 
Font-Names="Arial" ForeColor="Black" ImageSet="Contacts" 
NodeIndent="10" ExpandDepth="0"  >

在Masterpage.master.cs:

 protected void treeModule_SelectedNodeChanged(object sender, EventArgs e)
    {


         if (treeModule.SelectedNode.Text == "User")
        {
            Session["SaveEditMode"] = "Save";
            Session["InboxMode"] = "N";

            Response.Redirect("~/UserCreation.aspx");
        }
         #region SubContrctModule

         if (treeModule.SelectedNode.Text == "WorkOrder Advance Report")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/Reports/AdvanceRequestReport.aspx");
         }
         if (treeModule.SelectedNode.Text == "Sub Contractor Master")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/SubContractorMaster.aspx");
         }
         if (treeModule.SelectedNode.Text == "Work Category Settings")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/WorkCategoryMaster.aspx");
         }
         if (treeModule.SelectedNode.Text == "Work Type Settings")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/WorkTypeMaster.aspx");
         }
         if (treeModule.SelectedNode.Text == "Work Order Settings")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";
             Response.Redirect("~/SubContract/WorkOrderMaster.aspx");
         }
         if (treeModule.SelectedNode.Text == "Advance Request")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/AdvanceRequest.aspx");
         }
         if (treeModule.SelectedNode.Text == "Advance Payment")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/AdavancePayment.aspx");
         }
         if (treeModule.SelectedNode.Text == "Billing Master")
         {
             Session["SaveEditMode"] = "Save";
             Session["InboxMode"] = "N";

             Response.Redirect("~/SubContract/BillingMaster.aspx");
         }


         if (treeModule.SelectedNode.Text == "Rating Percentage Setting")
        {
            Session["SaveEditMode"] = "Save";
            Session["InboxMode"] = "N";

            Response.Redirect("~/Material Module/ISO/ISORatingPercentageMaster.aspx");
        }

3 个答案:

答案 0 :(得分:1)

没有看到任何代码就有点困难了,但我相信你的问题出在asp:TreeView标签/服务器控件上。检查是否将“ExpandDepth”属性设置为任何值。我会完全删除它,或将其设置为'FullyExpand'。

答案 1 :(得分:0)

您需要根据新网页的网址展开节点

http://forums.asp.net/t/1766332.aspx/1

答案 2 :(得分:0)

假设PopulateTree是您通过其填充树视图的函数名称。所以把PopulateTree函数放在里面!isPostback。

if (!IsPostBack)
   {
     PopulateTree();

   }