[quote]
在ext1.x裡,樹是沒有checkbox的, 幸好在2.x版本裡提供了這個功能, 在許多應用裡, 帶有checkbox的樹使用還是很常見的
ext2.x提供了簡單的checkbox實現,但對於一些複雜的需求,如: 級聯多選(選中父結點,自選中其所有子結點和所有父結點) , 單選等等, ext2.x並沒有幫我們實
還有最難解決的情況, 當樹是非同步的時候, 要想級聯多選, 實現起來有些難度
在此, 通過對ext.tree.treenodeui進行擴充套件,這些問題都得到很好的解決
對 ext.tree.treenodeui 進行checkbox功能的擴充套件,後台返回的結點資訊不用非要包含checked屬性
擴充套件的功能點有:
一、支援只對樹的葉子進行選擇
只有當返回的樹結點屬性leaf = true 時,結點才有checkbox可選
使用時,只需在宣告樹時,加上屬性 onlyleafcheckable: true 既可,預設是false
二、支援對樹的單選
只允許選擇乙個結點
使用時,只需在宣告樹時,加上屬性 checkmodel: "single" 既可
三、支援對樹的級聯多選
當選擇結點時,自動選擇該結點下的所有子結點,或該結點的所有父結點(根結點除外),特別是支援非同步,當子結點還沒顯示時,會從後台取得子結點,然後將其選中/取消選中
使用時,只需在宣告樹時,加上屬性 checkmodel: "cascade" 或"parentcascade"或"childcascade"既可
cascade :級聯選中所有父結點和子結點
parentcascade :級聯選中所有父結點
childcascade :級聯選中所有子結點
四、新增"check"事件
該事件會在樹結點的checkbox發生改變時觸發
使用時,只需給樹註冊事件,如:
tree.on("check",function(node,checked));
預設情況下,checkmodel為 'multiple',也就是多選;onlyleafcheckable為false,所有結點都可選
使用方法:在loader裡加上 baseattrs: 既可.
例如:js**
var tree = new ext.tree.treepanel( //新增uiprovider屬性
}),
root: new ext.tree.asynctreenode()
});
tree.on("check",function(node,checked)); //註冊"check"事件
tree.render();
var tree = new ext.tree.treepanel(//新增uiprovider屬性
}),root: new ext.tree.asynctreenode()
});tree.on("check",function(node,checked)); //註冊"check"事件
tree.render();
需要注意的是, 使用例子裡的tree 使用了ext.tree.dwrtreeloader這個擴充套件類,用來載入後台樹結點,這和使用其它的loader沒有區別的,
如果您使用其它的loader, 同樣加上 baseattrs: 就行了
實現單選功能:
this.on('checkchange',this.check,this);
getnodes:function(treepanel);
startnode.cascade(f);
return r;
},check : function(node,bool)
if(this.checkmodel=='single')}}
}}}
[/quote]
[url]
單鏈表實現
單鏈表 1 邏輯上連續,位置上可以不連續的儲存方式。2 單鏈表由無數個結點組成,每個結點由資料段和指標域組成,資料段儲存資料,指標域儲存後繼的位址。3 每個結點最多有乙個前繼和乙個後繼。4 其中第乙個結點沒有前繼,所以我們通常建立乙個頭結點來儲存他的位置,其中頭結點的資料段我們不關注。5 最後乙個結...
單鏈表實現
include include define max 50 struct lnode 求鍊錶的長度 不包含頭結點 int length struct lnode node return i 初始化頭 int inithead struct lnode p struct lnode insert st...
單鏈表的實現
include includetypedef struct node 定義鍊錶 snode snode creat 建立鍊錶的函式 q next null return head int length snode head 測鍊錶的結點數 return i void display snode he...