ExtJs checkbox树

<link rel="stylesheet" type="text/css" href="/js/ext-2.3.0/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="/js/ext-2.3.0/resources/css/xtheme-gray.css" />
<script type="text/javascript" src="/js/ext-2.3.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/js/ext-2.3.0/ext-all.js"></script>
<!-- Files needed for SwfUploaderPanel -->
<SCRIPT LANGUAGE="JavaScript">
var Tree_Dept;
var Tree_Dept_Loader;
var checkchange = false;
Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = '/js/extjs/resources/images/default/s.gif';

//级联选择设置
var cascadeCheckBox = new Ext.form.Checkbox({
id: "cascadeBt",
boxLabel : '级联选择'
});

cascadeCheckBox.on('check', cascadeSelectSet);

// Define Tree.
Tree_Dept_Loader = new Ext.tree.TreeLoader({
baseParams:{"nodeids":'<%=nodeids%>'},
dataUrl :"DeptTreeData.jsp"
});

//lable 21409:具有创建权限的目录
Tree_Dept = new Ext.tree.TreePanel({
collapsible : false,
animCollapse : false,
border : true,
el :'tree',
autoScroll : true,
animate : false,
containerScroll : true,
height : 400,
rootVisible : true,
loader : Tree_Dept_Loader,
tbar: [{
id: "submit_button",
xtype:"button",
handler: onGetChecked,
text:"确定"
},{ //清除所有选中的部门节点
id: "clear_button",
xtype:"button",
handler: clearAll,
text:"清除所选项"
},{ //选中当前被选中的同层级的所有节点
id: "samelv_button",
xtype:"button",
handler: sameLvSelectSet,
text:"同层级全选"
},{ //重置
id: "reload_button",
xtype:"button",
handler: reloadData,
text:"重置"
},'-',cascadeCheckBox]
});

// SET the root node.
//lable 1478: 目录信息
//组织部门树
var Tree_Dept_Root = new Ext.tree.AsyncTreeNode({
text : '组织部门',
draggable : false,
id : 'root^-^0' //root main sub
});
Tree_Dept.setRootNode(Tree_Dept_Root);

Tree_Dept.on('checkchange', function(node, checked) {
node.attributes.checked = checked;
checkchange = true;
document.getElementById("selectid").value = node.id;
});

Tree_Dept.on('click', function(node, checked) {
if (node.attributes.checked == false)
{
node.ui.toggleCheck(true);
node.attributes.checked = true;
}
else
{
node.ui.toggleCheck(false);
node.attributes.checked = false;
}
document.getElementById("selectid").value = node.id;
});

Tree_Dept.on("expand", function(Tree_Dept){
var tobjs=Tree_Dept.getChecked();
if (tobjs.length > 0)
{
var node = tobjs[tobjs.length-1];
node.select();
}
});

Tree_Dept.render();
Tree_Dept_Root.expand();
});

function onGetChecked()
{
try
{
var nodeids="";
var actionids = "";
var nodenames = "";
var tobjs=Tree_Dept.getChecked();

for(var i = 0;i<tobjs.length;i++)
{
var obj = tobjs[i];
nodenames += (nodenames=="")?obj.text:(";"+obj.text);

var splitstr = "^-^";
var nodeid = obj.id;
var pos = nodeid.indexOf(splitstr);
if(pos!=-1)
{
var idsarray = nodeid.split(splitstr);
var type=idsarray[0];
var content=idsarray[1];
nodeids += (nodeids=="")?content:(","+content);
}
}
document.getElementById("nodenames").value=nodenames;
document.getElementById("nodeids").value=nodeids;
//document.getElementById("checkchange").value = "1";
//alert(nodenames);
//alert(nodeids);
}
catch(e)
{

}
}

function clearAll()
{
var tobjs=Tree_Dept.getChecked();
var node;
for(var i = 0;i<tobjs.length;i++)
{
var obj = tobjs[i];
var nodeid = obj.id;
node = Tree_Dept.getNodeById(nodeid);
node.ui.toggleCheck(false);
node.attributes.checked = false;
}
document.getElementById("selectid").value = "";
}

function sameLvSelectSet()
{
var currentid = document.getElementById("selectid").value;

if ("" == currentid || "undefined" == currentid)
{
alert("请选择一个部门!");
return;
}

var node = Tree_Dept.getNodeById(currentid);
var parentNode = node.parentNode;
parentNode.eachChild(function(child){
child.ui.toggleCheck(true);
child.attributes.checked = true;
});
}

function cascadeSelectSet(obj, checked)
{
if (checked)
{
Tree_Dept_Loader.dataUrl = "DeptTreeData.jsp?isCascade="+true;
}
else
{
Tree_Dept_Loader.dataUrl = "DeptTreeData.jsp?isCascade="+false;
}
}

function collapseAllSet()
{
Tree_Dept.collapseAll();
}

function reloadData()
{
Tree_Dept.getRootNode().reload();
}

function setFocus()
{
var tobjs=Tree_Dept.getChecked();
if (tobjs.length > 0)
{
var node = tobjs[tobjs.length-1];
node.select();
}
}
</script>

后台:
String nodeids=Util.null2String(request.getParameter("nodeids"));
String isCascade=Util.null2String(request.getParameter("isCascade"));
String node=Util.null2String(request.getParameter("node"));
String arrNode[]=Util.TokenizerString2(node,"^-^");
String type=arrNode[0];
String value=arrNode[1];

JSONArray jsonArrayReturn= new JSONArray();
if("root".equals(type)){ //主目录下的数据
rs.executeSql(".....");

String nodeId="";
String nodeName="";
String tempNodeId = "";
while(rs.next()){
nodeId=rs.getString("id");
nodeName=rs.getString("departmentname");
tempNodeId = "," + nodeId + ",";
JSONObject jsonTypeObj=new JSONObject();

jsonTypeObj.put("id","node^-^"+nodeId);
jsonTypeObj.put("text",nodeName);
jsonTypeObj.put("cls","folder");
jsonTypeObj.put("draggable",false);
jsonTypeObj.put("leaf",false);
jsonTypeObj.put("expanded",false);
jsonTypeObj.put("checked",false);

jsonArrayReturn.put(jsonTypeObj);
}
} else if ("node".equals(type)){
rs.executeSql("....");

String nodeId="";
String nodeName="";
String tempNodeId = "";
while(rs.next()){
nodeId=rs.getString("id");
nodeName=rs.getString("departmentname");
tempNodeId = "," + nodeId + ",";
JSONObject jsonTypeObj=new JSONObject();

jsonTypeObj.put("id","node^-^"+nodeId);
jsonTypeObj.put("text",nodeName);
jsonTypeObj.put("cls","folder");
jsonTypeObj.put("draggable",false);
jsonTypeObj.put("leaf",false);

jsonTypeObj.put("expanded",false);

if ("true".equals(isCascade)
jsonTypeObj.put("checked",true);
else
jsonTypeObj.put("checked",false);

jsonArrayReturn.put(jsonTypeObj);
}
}
out.println(jsonArrayReturn.toString());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值