jquery ajax json4 treeview动态加载

本文介绍了一个使用TreeView实现动态加载的方法。该方法通过GET请求从服务器获取数据,并利用li元素的ID作为参数来区分不同的请求。文章还提到了一个关于addClass方法的小bug及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


<ul id="tree" class="filetree treeview-famfamfam">
</ul>

动态加载的时候,只会在第一次展开的时候发送服务器,再次展开是不发送的,类似jquey的one事件处理。
treeview每次请求都是get请求,会自动带一个"root"的url参数,第一次是"source"。
以后的话都以li的id作为参数,即你在json数据中设置的"id"值。如果json中某个bool值的项目你不需要,就不写,设置false没有效果的。
还需要注意的是treeview的jquery.treeview.anync.js有一个bug,原来是:
current.children("span").addClass(this.classes);这样有异常的,要改成字符串形式,如下:
current.children("span").addClass(""+this.classes);

response.setHeader("Cache-Control", "no-cache");
String parameter = request.getParameter("root");
if (parameter != null)
{
//第一次加载的时候root是"source", 以后是id的值
if (parameter.equals("source"))
{
try
{
JSONArray baseArray = new JSONArray();
for (int i = 0; i < 3; i++)
{
JSONObject baseObject = new JSONObject();
baseObject.append("text", "base"+i);
baseObject.append("id", i);
/*如果不需要某个设置就不写,设置false没有效果的*/
//baseObject.append("expanded", true);
baseObject.append("classes", "folder");
baseObject.append("hasChildren", true);
baseArray.put(baseObject);
}
String json = baseArray.toString();
System.out.println(json);
response.setHeader("Cache-Control", "no-cache");
response.setContentType("application/json");
byte[] bs = json.getBytes("utf-8");
response.setContentLength(bs.length);
OutputStream os = response.getOutputStream();
os.write(bs);
os.flush();
os.close();
}
catch (JSONException e)
{
e.printStackTrace();
}
}
else
{
try
{
JSONArray childArray = new JSONArray();
for (int i = 0; i < 2; i++)
{
JSONObject childObject = new JSONObject();
childObject.append("text", "base is "+parameter+" child" + i);
childObject.append("id", i);
/* 如果不需要某个设置就不写,设置false没有效果的 */
// baseObject.append("expanded", true);
childObject.append("classes", "folder");
childObject.append("hasChildren", true);
childArray.put(childObject);
}
String json = childArray.toString();
System.out.println(json);
response.setHeader("Cache-Control", "no-cache");
response.setContentType("application/json");
byte[] bs = json.getBytes("utf-8");
response.setContentLength(bs.length);
OutputStream os = response.getOutputStream();
os.write(bs);
os.flush();
os.close();
}
catch (JSONException e)
{
e.printStackTrace();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值