c#.net中的treeview中的selectnodechange事件。
点击节点第一次可以触发该事件,可点击第二次的时候就不能触发该事件了,有哪位高手给看看啊。
我的selectnodechange事件是这样写的:
//节点选中事件
protected void roleTreeView_SelectedNodeChanged(object sender, EventArgs e)
{
//objNode.Checked = !objNode.Checked;
this.nodesvalue.Value = this.roleTreeView.SelectedNode.Value;
//Response.Write("<script>alert('"+nodesvalue.Value+"');</script>");
Response.Write("<script>window.open('MainRoleUser.aspx?roleId='+'"+this.nodesvalue.Value+"','User','');</script>");
this.roleTreeView.SelectedNode.NavigateUrl = "MainRoleRight.aspx?roleId=" + nodesvalue.Value; //roleTreeView.SelectedNode.Selected = false;
roleTreeView.Nodes.Clear();
initTree();
//roleTreeView.SelectedNode.Selected = true;
}
点击节点第一次可以触发该事件,可点击第二次的时候就不能触发该事件了,有哪位高手给看看啊。
我的selectnodechange事件是这样写的:
//节点选中事件
protected void roleTreeView_SelectedNodeChanged(object sender, EventArgs e)
{
//objNode.Checked = !objNode.Checked;
this.nodesvalue.Value = this.roleTreeView.SelectedNode.Value;
//Response.Write("<script>alert('"+nodesvalue.Value+"');</script>");
Response.Write("<script>window.open('MainRoleUser.aspx?roleId='+'"+this.nodesvalue.Value+"','User','');</script>");
this.roleTreeView.SelectedNode.NavigateUrl = "MainRoleRight.aspx?roleId=" + nodesvalue.Value; //roleTreeView.SelectedNode.Selected = false;
roleTreeView.Nodes.Clear();
initTree();
//roleTreeView.SelectedNode.Selected = true;
}
如果是,那么第二次肯定触发不了了,这个事件只有在选择的节点发生变化的时候才会触发。第二次点击同一个节点,根本没变化。
如果是,那么第二次肯定触发不了了,这个事件只有在选择的节点发生变化的时候才会触发。第二次点击同一个节点,根本没变化。
方法调用出错了吧,多调试一下
treeNode tnCurrent=roleTreeView.SelectedNode;
在事件的最后加上
tnCurrent.selected=false;
roleTreeView.Nodes.Clear();
initTree();
这两句是想实现树的重置吗?
但是你下面那两句刷新可以注掉,treeview的构建十分影响效率。
刚才测试了下,事件没错,是楼主的功能代码有问题。建议好好看下。
确实是我代码错了,是加了这一句:this.roleTreeView.SelectedNode.NavigateUrl = "MainRoleRight.aspx?roleId=" + nodesvalue.Value;请帮我看一下,为什么加了这句就不行了?应该换成那种方法呢?