extjs 如图,实现带有复选框的树/选中父节点时,选中所有子节点。取消所有子节点时,才能取消根节点。

ホームページ >ウェブフロントエンド >jsチュートリアル >extjsのtreepanel checkbox_extjsにおける親ノードと子ノードの選択の問題について

extjsのtreepanel checkbox_extjsにおける親ノードと子ノードの選択の問題について

WBOY
WBOYオリジナル
2016-05-16 17:38:241111ブラウズ
extjsのtreepanel checkbox_extjsにおける親ノードと子ノードの選択の問題について
extjs 図のように、親ノードを選択すると、すべての子ノードが選択された状態でツリーを実装します。ルート ノードは、すべての子ノードがキャンセルされた場合にのみキャンセルできます。
コードをコピーします コードは次のとおりです:

var Fpanel = new Ext.tree.TreePanel ({
id:'ptree',
region:'west',
layout:'anchor',
border:false,
rootVisible: false,
root:new Ext .tree.AsyncTreeNode({}),
listeners:{
"checkchange": function(node, state) {
if (node.parentNode != null) {
//子ノードが選択されました
node.cascade(function(node){
node.attributes.checked = state;
node.ui.checkbox.checked = state;
return true;
}); >// 親ノードが選択されました
var pNode = node.parentNode;
if (state || Fpanel.getChecked(id, pNode) == "") {
pNode.ui.toggleCheck(state);
pNode.attributes.checked = 状態;
}
}
}
}); ){
Ext.Ajax.request({
url: 'authorityTree.ashx',
method: 'get',
success: function(request) {
var data = Ext. util.JSON .decode(request.responseText);
Fpanel.getRootNode().appendChild(data);
Fpanel.expandAll(); >},
failure: function() {
Fpanel.render();
Ext.MessageBox.show({
title: 'プロンプト',
msg: 'サーバーがビジーです、Firefox を使用して閲覧してください ブラウザで閲覧するか、後でもう一度お試しください。 '、
ボタン: Ext.MessageBox.OK、
アイコン: Ext.MessageBox.ERROR
});
}
});
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。