• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

KidAn 2005-03-20 06:12:07
那位大哥关于这个的代码或者概念一类的东西,望指教一下
...全文
169 点赞 收藏 8
写回复
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日
自己来顶以下
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告