上の 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)
{
}
}
私はライブプロジェクトに取り組んでいるので、解決策を教えてください。