SelectedNodeChanged 是 ASP.NET 的 TreeView 中的一个事件,它在以下情况下触发。
注意,这里是选择,不是选中。选择是直接点击节点,选中是选中节点前面的 Checkbox(如果开启了的话)。
为什么删除选择的节点时不会触发 SelectedNodeChanged 呢?
删除选择的节点时,由有选择的节点变为没有选择的节点,但为什么不触发 SelectedNodeChanged 呢?
这得从触发原理上来说,参照 TextBox 的 TextChanged 是如何工作的?一文,我们可以联想到 TreeView 的 SelectedNodeChanged 是如何工作的:首先输出 TreeView,并且也会指明选择的节点是哪个;然后提交 TreeView 、指明选择的节点是哪个以及删除节点的命令;最后服务器端是先判断 SelectedNodeChanged,再执行删除命令,由于删除在后,所以就不会触发 SelectedNodeChanged 了。