2009-10-22 54 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