0

チラーノードをクリックする前に

他のノードも展開

上の 2 つの画像の 1 番目の画像で、ツリー ビューを展開し、チラーというノードをクリックします。ここで、ツリービューの横にある小さな矢印をクリックするまで、Home.aspx を使用しています。Chillers ノードをクリックすると、別のページ abcd.aspx にリダイレクトされます。

2 番目の図は、チラーをクリックすると、上記のノードも展開されることを示しています。これはポストバックが原因だと思います。問題を解決する方法。更新パネルにもツリー ビュー コントロールを保持しようとしました。しかし、何も助けません。

以下は私のaspxコードです

<asp:TreeView ID="TreeView_Parent_Child" EnableClientScript="true" align="left"
        AutoGenerateDataBindings="true" LeafNodeStyle-ForeColor="Black" NodeStyle-ForeColor="Black"
        PopulateNodesFromClient="true" runat="server" Font-Names="Arial"
        OnTreeNodePopulate="PopulateNode"
        HoverNodeStyle-BackColor="ActiveBorder" Font-Size="Small" ImageSet="Arrows" NodeStyle-HorizontalPadding="5px">
        <HoverNodeStyle Font-Bold="true" BackColor="Beige" />
        <Nodes>
        </Nodes>
        <NodeStyle ForeColor="Black" />
        <LeafNodeStyle ForeColor="Black" />

    </asp:TreeView>

csコード:

protected void PopulateNode(object sender, TreeNodeEventArgs e)
{
    try
    {
        string nodevalue = e.Node.Value.ToString();
        nodecount = nodevalue.Count(c => c == '/');

        List<string> abc = new List<string>();           
        int iii = 0;
        if (nodecount == 1)
        {
            string[,] param = new string[2, 2];
            param[0, 0] = "@Folder_Id";
            param[0, 1] = e.Node.Value.Split('/')[0];
            param[1, 0] = "@Login_Id";
            param[1, 1] = Session["USER_ID"].ToString();

            DataSet dsFolders = cbal.fillGrid_with_param("SubFolder_From_Folder_Directory", param);              


            DataRow[] dr_Not_Parts = dsFolders.Tables[0].Select("Subfolder_Code<>6");

            if (dr_Not_Parts.Length > 0)
            {
                for (int i = 0; i < dr_Not_Parts.Length; i++)
                {
                    TreeNode newNode = new TreeNode();
                    newNode.Text = dr_Not_Parts[i]["Subfolder_Name"].ToString();
                    newNode.Value = dr_Not_Parts[i]["Subfolder_Code"].ToString() + "/1/1";
                    newNode.PopulateOnDemand = true;

                    newNode.SelectAction = TreeNodeSelectAction.Expand;


                    newNode.NavigateUrl = "Auto_Test.aspx?value=" + newNode.Value + "";
                    newNode.ImageUrl = "~/Images/folderSmall2.jpg";
                    e.Node.ChildNodes.Add(newNode);
                }
            }

            Session["Test"] = "1";
        }
        if (nodecount == 2)
        {
            DataSet ds_rel = cbal.fillGrid("UserID_From_LOGIN_NAME", "@LoginName", Session["USER_ID"].ToString());

            string[,] param = new string[2, 2];
            param[0, 0] = "@empcode";
            param[0, 1] = ds_rel.Tables[0].Rows[0]["CODE"].ToString();

            param[1, 0] = "@SubFolder_Id";
            param[1, 1] = e.Node.Value.Split('/')[0];

            ViewState["collapse"] = e.Node.Value.Split('/')[0];

            DataSet dsFolders = cbal.fillGrid_with_param("MainLevel_From_SubFolder_New", param);

            DataRow[] dr_Not_Parts = dsFolders.Tables[0].Select("MainLevel_Code<>8");

            if (dr_Not_Parts.Length > 0)
            {
                for (int i = 0; i < dr_Not_Parts.Length; i++)
                {
                    TreeNode newNode = new TreeNode();
                    newNode.Text = dr_Not_Parts[i]["MainLevel_Name"].ToString();
                    newNode.Value = dr_Not_Parts[i]["MainLevel_Code"].ToString() + "/1/1/1";
                    newNode.PopulateOnDemand = true;

                    newNode.SelectAction = TreeNodeSelectAction.Expand;                        

                    newNode.NavigateUrl = "Auto_Test.aspx?value=" + newNode.Value + "";
                    newNode.ImageUrl = "~/Images/folderSmall2.jpg";

                    e.Node.ChildNodes.Add(newNode);                       
                }
            }

            Session["Test"] = "2";
        }

        if (nodecount == 3)
        {
            string[,] param = new string[2, 2];
            param[0, 0] = "@MainLevel_Id";
            param[0, 1] = e.Node.Value.Split('/')[0];
            param[1, 0] = "@Login_Id";
            param[1, 1] = Session["USER_ID"].ToString();
            ViewState["collapse"] = e.Node.Value.Split('/')[0];
            DataSet dsFolders = cbal.fillGrid_with_param("SubMainLevel_From_MainLevel", param);             

            if (dsFolders.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < dsFolders.Tables[0].Rows.Count; i++)
                {
                    TreeNode newNode = new TreeNode();
                    newNode.Text = dsFolders.Tables[0].Rows[i]["SubMainLevel_Name"].ToString();
                    newNode.Value = dsFolders.Tables[0].Rows[i]["SubMainLevel_ID"].ToString();
                    newNode.PopulateOnDemand = true;                       
                    newNode.SelectAction = TreeNodeSelectAction.Expand;                     

                    newNode.ImageUrl = "~/Images/folderSmall2.jpg";
                }
            }

            Session["Test"] = "3";
        }

        if (nodecount == 4)
        {
            string[,] param = new string[1, 2];
            param[0, 0] = "@SubMainLevel_Id";
            param[0, 1] = e.Node.Value.Split('/')[0];

            DataSet dsFolders = cbal.fillGrid_with_param("Document_View_forFolderClick", param);            


            if (dsFolders.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < dsFolders.Tables[0].Rows.Count; i++)
                {
                    TreeNode newNode = new TreeNode();
                    newNode.Text = dsFolders.Tables[0].Rows[i]["CODE"].ToString();
                    newNode.Value = dsFolders.Tables[0].Rows[i]["Document_Name"].ToString();
                    newNode.PopulateOnDemand = true;                      
                    newNode.SelectAction = TreeNodeSelectAction.Expand;                      


                    newNode.ImageUrl = "~/Images/pdfimg.jpg";

                    e.Node.ChildNodes.Add(newNode);
                }
            }
        }
 }
        catch (Exception ex)
        {

        }
    }

私はライブプロジェクトに取り組んでいるので、解決策を教えてください。

4

0 に答える 0