我在treeview的SelectedNodeChanged事件中添加
     tn.NavigateUrl = String.Format("Details.aspx?id={0}",textstr);
        tn.Target = "main";这样的代码 只有点击两次节点 才会执行,怎么回事
也就第一次点击 没有效果,以后点击都会执行?

解决方案 »

  1.   

    当然不能在SelectedNodeChanged事件中写入,原因:第一次点击的时候程序才去加载tn.NavigateUrl,所以,第一次没反应,原因第一次的时候 NavigateUrl 为空,所以当第二次以后都是正确的,你这程序段应该写在比如数据绑定后触发的事件中
      

  2.   

    我的数据是在加载时绑定的 在Page_load中写入的话我就没法去选择别的节点
      

  3.   

    最好在描述的清楚点,像这样的代码,我不知道别人是放哪的,至少我是放在绑定事件里就写好的,所以点击的时候NavigateUrl此时已经有值了所以可以跳转
      

  4.   

    你的事件用得不对,再看看有没有其他treeview事件。
      

  5.   

    NavigateUrl你在页面载入的时候绑定试试
      

  6.   

    点击第二次的时候不会触发SelectedNodeChanged事件
      

  7.   

    嗯,我也觉得应该加载的时候就设定好NavigateUrl属性
      

  8.   

    treeview有NavigateUrl这个属性吗?我刚刚看了没有这个属性,我用的是vs2005。或者你用的是什么第三方控件。
      

  9.   

    这么多热心人,先谢谢大家了!我没用第三方。我用的的框架,我想在点击左侧树目录节点时右侧显示出相应的信息。也没有用第三方控件。我调试发现SelectedNodeChanged事件点击第一次执行时会先自动刷新,tn.NavigateUrl = String.Format("Details.aspx?id={0}",textstr);
      tn.Target = "main";执行了但显示的是刷新的页面,第二次点击时执行以上代码,右侧会加载相应的内容。真的很奇怪