ext.net TreePanel單擊取值


 TreePanel實現可以有多種,目前用到的有兩種實現方式:數據源可以一次性加載,第二單擊父類生成相關子類數據。

 

 結構:TreePanel->放置TreeNode 以此迭代生成樹型菜單

 

那么如何實現TreePanel單擊取值?

 

第一反應:給TreePanel節點TreeNode添加單擊事件TreeNode.Listeners.Click.Handler

代碼:

tplMain:TreePanel的ID
//選擇按鈕Click
        function selectNode() {
            var selectionMode = tplMain.getSelectionModel();
            var selection = selectionMode.selNode; //獲取選中的值
            if (selection == null) {
                alert("請選擇");
            }
            else {
                var v = selection.attributes.text;
                alert(v);

            }
        }
foreach (var item in childRow)
                {
                    Ext.Net.TreeNode childNode = new Ext.Net.TreeNode
                    {
                        NodeID = item["FID"].ToString(),
                        Text = item[rowField["DisplayField"].ToString()].ToString(),
                        Qtip = item[rowField["DisplayField"].ToString()].ToString(),
                    };
                    childNode.Listeners.Click.Handler = "selectNode() ;";
                    parNode.Nodes.Add(CreateNode(dtSource, childNode, item["FID"].ToString(), rowField));
                }

 

得到的卻是:假如我第一次單擊的是‘華交會’得到的提示卻是“請選擇”, 第二次任意單擊其他則得到我要的‘華交會’ ,測試發現tplMain.getSelectionModel()取到的值是null

 

謎底還沒解除來,有ext高手的還請解釋下why??

 

解決方法:直接給TreePanel添加單擊事件TreePanel.Listeners.Click.Handler = "ClickNode(node)";

 

tplMain.Listeners.Click.Handler = "ClickNode(node)"; 
 //樹 單擊取值主鍵FID
        function ClickNode(node) {
            alert(node.attributes.text);
            //alert(node.attributes.id);
        }

 

效果:

 

功能雖實現,但是第一種方法不行的原因還不是明白, 有ext高手的還請解釋下why??

 

 

 

 

 


作者:PEPE
出處:http://pepe.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM