2009-10-22 59 views
1

我刚刚切换到在我的ASPX页面上为我的TreeView控件使用CSS适配器。现在,出于某种原因,除了在我的OnClick()事件中,我不能使用SelectedNode方法。所有其他事件显示SelectedNode为NULL。每当有人点击某个节点时,我正在使用一堆不可见的标签来存储树信息。使用此控件的方法非常非常错误。在启用CSS适配器时,在代码背后获得控制权的秘诀是什么?asp.net树css适配器selectedNode为空?

回答

1

TreeView控件的适配器确实有一些viewstate处理,但是您正确选择的节点属性在回发时为null。

如果你在浏览器状态栏上会显示类似悬停在根节点:

javascript:__doPostBack('controlid', 'eventargument'); 
//or 
    javascript:__doPostBack('tv', 'srootnodevalue\\childnodevalue'); 

你能赶上在后面描述你所访问的节点及其作为值的代码事件参数像'node \ value'这样的字符串。

 if (Request.Form["__EVENTTARGET"] != null && Request.Form["__EVENTARGUMENT"] != null) 
     { 
      if (Request.Form["__EVENTTARGET"].Equals("tv")) //tv is my treeview control id, and the first parameter in __doPostBack() 
       Tv_SelectedNodeChanged(Request.Form["__EVENTARGUMENT"]); 
     } 


     protected void Tv_SelectedNodeChanged(string argument) 
     { 
      //process the argument string 'srootnodevalue\childnodevalue' 
     } 

的树状视图状态似乎意识到它的适配器的表示所选择的节点作为类=“ASPNET-的TreeView叶ASPNET,TreeView控件,选定的”,当它呈现。

不过,可能有这样做的更好的方式...

+0

也可以看看这个帖子... http://cssfriendly.codeplex.com/Thread/View.aspx?ThreadId=66248 – CRice 2009-10-26 05:30:34

+0

对不起大家 - 还没有回到这个特殊的问题呢。我仍然需要解决这个问题,但mgmt让我现在正在运行另外15个不同的方向。 – 2010-01-13 20:51:18