.net问题 一个树形需要绑定的数据是动态的 数据随时会增加 这个怎么弄
2个回答
2013-07-11
展开全部
用递归无限添加子节点
DataView dv = new DataView(dt);
dv.RowFilter = "[Sid]=" + Sid;
foreach (DataRowView drv in dv)
{
TreeNode NewNode = new TreeNode();
if (pNode == null)
{
NewNode.Text = drv["Cname"].ToString();
NewNode.Value = drv["Cid"].ToString();
NewNode.Target = "rightFrame";
NewNode.NavigateUrl = "right.aspx?Cid=" + NewNode.Value;
TreeView1.Nodes.Add(NewNode);
AddChildNode(NewNode);
AddNode(NewNode, (int)drv["Cid"]);
}
else
{
NewNode.Text = drv["Cname"].ToString();
NewNode.Value = drv["Cid"].ToString();
NewNode.Target = "rightFrame";
NewNode.NavigateUrl = "right.aspx?Cid=" + NewNode.Value;
pNode.ChildNodes.Add(NewNode);
AddChildNode(NewNode);
AddNode(NewNode, (int)drv["Cid"]);
}
}
DataView dv = new DataView(dt);
dv.RowFilter = "[Sid]=" + Sid;
foreach (DataRowView drv in dv)
{
TreeNode NewNode = new TreeNode();
if (pNode == null)
{
NewNode.Text = drv["Cname"].ToString();
NewNode.Value = drv["Cid"].ToString();
NewNode.Target = "rightFrame";
NewNode.NavigateUrl = "right.aspx?Cid=" + NewNode.Value;
TreeView1.Nodes.Add(NewNode);
AddChildNode(NewNode);
AddNode(NewNode, (int)drv["Cid"]);
}
else
{
NewNode.Text = drv["Cname"].ToString();
NewNode.Value = drv["Cid"].ToString();
NewNode.Target = "rightFrame";
NewNode.NavigateUrl = "right.aspx?Cid=" + NewNode.Value;
pNode.ChildNodes.Add(NewNode);
AddChildNode(NewNode);
AddNode(NewNode, (int)drv["Cid"]);
}
}
2013-07-11
展开全部
用treeview控件绑定到数据源
若要显示以声明方式绑定到该控件的数据,请首先向页面添加一个分层数据源控件(如 XmlDataSource 控件),并向该控件分配一个 ID。然后,将 TreeView 控件的 DataSourceID 属性设置为该数据源控件的 ID。TreeView 控件即可自动绑定到数据源并显示数据源的值。
注意
TreeView 控件可以绑定到实现 IHierarchicalDataSource 接口的任何数据源控件,如 SiteMapDataSource 对象或 XmlDataSource 对象。
默认情况下,在绑定一个数据源时,如果该数据源的每个数据项包含多个属性(如一个 XML 元素具有多个属性),则节点显示数据项的 ToString 方法所返回的值。就 XML 元素而言,节点显示该元素名称。此架构显示了树的基础结构,但在其他方面不是很有用。可以通过使用 DataBindings集合指定树节点绑定,从而将节点绑定到特定数据项属性。DataBindings 集合包含定义数据项和它所绑定到的节点之间的关系的 TreeNodeBinding 对象。可以指定绑定条件和要显示在节点中的数据项属性。有关树节点绑定的更多信息,请参见 TreeNodeBinding。
注意
此外,TreeView 控件还为手动数据绑定提供了一个 DataSource 属性和一个 DataBind 方法。
动态显示数据
可能无法以静态方式定义数据结构,或数据可能依赖于运行时收集的信息。可以在服务器端代码中以编程方式将 TreeNode 对象填充到 TreeView 控件的 Nodes 集合中,也可以利用 TreeView 控件的 PopulateOnDemand 功能在客户端上的父节点展开时动态填充节点。
若要显示以声明方式绑定到该控件的数据,请首先向页面添加一个分层数据源控件(如 XmlDataSource 控件),并向该控件分配一个 ID。然后,将 TreeView 控件的 DataSourceID 属性设置为该数据源控件的 ID。TreeView 控件即可自动绑定到数据源并显示数据源的值。
注意
TreeView 控件可以绑定到实现 IHierarchicalDataSource 接口的任何数据源控件,如 SiteMapDataSource 对象或 XmlDataSource 对象。
默认情况下,在绑定一个数据源时,如果该数据源的每个数据项包含多个属性(如一个 XML 元素具有多个属性),则节点显示数据项的 ToString 方法所返回的值。就 XML 元素而言,节点显示该元素名称。此架构显示了树的基础结构,但在其他方面不是很有用。可以通过使用 DataBindings集合指定树节点绑定,从而将节点绑定到特定数据项属性。DataBindings 集合包含定义数据项和它所绑定到的节点之间的关系的 TreeNodeBinding 对象。可以指定绑定条件和要显示在节点中的数据项属性。有关树节点绑定的更多信息,请参见 TreeNodeBinding。
注意
此外,TreeView 控件还为手动数据绑定提供了一个 DataSource 属性和一个 DataBind 方法。
动态显示数据
可能无法以静态方式定义数据结构,或数据可能依赖于运行时收集的信息。可以在服务器端代码中以编程方式将 TreeNode 对象填充到 TreeView 控件的 Nodes 集合中,也可以利用 TreeView 控件的 PopulateOnDemand 功能在客户端上的父节点展开时动态填充节点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询