请问TreeView节点展开才到数据库提取该节点下的子节点(c#),就像CSDN论坛上的一样~~~

KidAn 2005-03-20 06:12:07
那位大哥关于这个的代码或者概念一类的东西,望指教一下
...全文
204 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KidAn 2005-03-20
  • 打赏
  • 举报
回复
谢谢各位,看来我还是只有自己想办法做个TreeView,看来要花不少时间啊~~~~~~~~~
不过写一个对于自己也是一个不小的提高阿~~~谢谢各位了
athossmth 2005-03-20
  • 打赏
  • 举报
回复
hackate是一开始就生成树。
逐步生成可以参考:
http://msdn.microsoft.com/library/en-us/dnwebgen/html/msdntoc.asp
http://msdn.microsoft.com/library/en-us/dnwebgen/html/msdntoc2.asp
这是msdn的例子。
KidAn 2005-03-20
  • 打赏
  • 举报
回复
hackate(~兰心*-*寒~ | 个人网站: http://www.7to.net)
你说的我知道,你这个方法是一次性把所有节点都下载下来,我想找的是开始只下载树头一两层的节点,在以后用户选择各个节点的时候再下载以后的节点。
不过在这里谢谢你了
不过有没有人知道如何调用点击MS的TreeView上的+号或者节点展开的事件??
我想在该事件中去提取所点击节点的子节点,不知道对不对,望大虾指点
hackate 2005-03-20
  • 打赏
  • 举报
回复
public class Example : System.Web.UI.Page
{
protected SqlConnection myConn;
protected SqlDataAdapter myAdapter;
protected DataSet data;
protected Microsoft.Web.UI.WebControls.TreeView myTree;
protected string query;

private void Page_Load(object sender, System.EventArgs e)
{
// 从Web.config配置节中读取数据库连接字符串
string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"];
myConn = new SqlConnection(ConnStr);
CreateDataSet();
InitTree(myTree.Nodes, "0");
}

// 将数据库的内容存入DataSet做缓冲
private DataSet CreateDataSet()
{
query = "SELECT * FROM TreeViewTable";
myAdapter = new SqlDataAdapter(query, myConn);
data = new DataSet();
myAdapter.Fill(data, "tree");

return data;
}

// 从DataSet中取数据建树
// 从根节点开始递归调用显示子树
private void InitTree(TreeNodeCollection Nds,string parentId)
{
TreeNode tmpNd;
DataRow [] rows = data.Tables[0].Select("ParentId='" + parentId + "'");

foreach(DataRow row in rows)
{
tmpNd = new TreeNode();
tmpNd.ID = row["NodeId"].ToString();
tmpNd.Text = row["NodeName"].ToString();
tmpNd.NavigateUrl = row["Url"].ToString();
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes, tmpNd.ID);
}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}

看看
nga96 2005-03-20
  • 打赏
  • 举报
回复
UP
Bruce_H21 2005-03-20
  • 打赏
  • 举报
回复
代码不再这里,所以帮不到你。不好意思。
Bruce_H21 2005-03-20
  • 打赏
  • 举报
回复
用TreeView关键词在CSDN查找有相关的很多。
KidAn 2005-03-20
  • 打赏
  • 举报
回复
自己来顶以下

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧