TreeView中CheckBox的问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:46:48
在Index.aspx下有两个frame,一个是Menu.apsx,一个是WorkSpace.aspx
在Menu.aspx下,有个TreeView1,它的每个节点都有个CheckBox可选的
在WorkSpace下,有个button按钮..现在我点击button按钮,要从Menu.aspx取到所有已被选择的CheckBox所对应的节点的NodeData到WorkSpace页面来

现在我有两个想法,一是在Menu.aspx页面中写个JS,获取当前所有被选择的节点..但我这个树是动态加载的,不知道一共有多少层
二是在Menu.aspx中的树中,点击CheckBox触发事件,根据Checkbox所在节点对要传到WorkSpace的集合进行删减,但CheckBox的事件我不会写..

希望大家能帮忙解决一下,最好能提供相关代码或代码示例,主要是问题是,1如何得到已选CheckBox的NodeData 2由于是异步加载,我每选一个节点时,这个节点的子孙节点也是要被选中的,所以选中一个节点时还得判断他的子孙节点
KenroJiang你说的那是选择或取消某一节点时,其祖先节点和子孙节点发生相应的变化吧??这个功能我通过修改TreeView.htc已经实现了...其他两位也没说到点上
现在我只想取到所有被选择了的CheckBox所对应的NodeData..有些NODE还没展开,这些node要被点击展开时,才能出现其子节点,所以在展开之前,如果这个NODE被选择了,他在数据库中对应的子孙节点数据也得被选中,但在树中,子孙节点是未被显示的

传值可以考虑用session

在TreeView1的oncheckedchanged(我不知道能不能用)
事件中..查找出选中的节点.存入session 节点之间用,号隔开

在button按钮事件就可以得到session了

这是一个遍历树的代码,还是利用节点的checked属性判断是否选中。希望对你有所帮助
private void GetAllNodeText(TreeNodeCollection tnc)
{
foreach (TreeNode node in tnc)
{
if (node.ChildNodes.Count != 0)

GetAllNodeText(node.ChildNodes);
if (node.Checked == true)
{
Response.Write(node.Text + " ");
Response.Write(node.ToolTip + " ");
Response.Write("<br/>");
}
}
}