1、 java后台用json-lib的 JSONArray.fromobject 将 对象集合转化成json数组,再使用response.getWriter().write(JSONArray.toString()),输出到前台。。。。。我在appcan前台使用 var sd=eval(data) 将json字符串转化成 json数组。。。。。。现在我们要将json 数组 set到listtview中,可以遍历后台拿到的数组, 在循环内 组我们需要的json对象,并push到我们新建的空数组。 var qtlist=[ ] for(var i=0;i<st.length;i++){ var list { name:st[i].name,id:st[i].id } qtlist.push(list) }, lv.set(qtlist)(lv即listview)。。
2、如何将选中的1个或多个checkbox进行保存,appcan中checkbox状态变化的时候有个方法即lv.on("checkbox:change",function(ele,obj,curEle){
//我们在这里判断,如果checknox被勾选
if($(obj).prop("checked")){
//如果被勾选就将它 添加到一个全局变量数组 obarray[]
obarray.push(obj); 当触发保存按钮呢的时候可以将这个数组推送到服务器
})
3.、第2点中的如果选中了某些checkbox,那么要如何取消选择其中一个或多个checkbox,如果用pop()方法则每次都是从最后一个开始删显然不合理,shift()
方法则是从第一个元素开始删,所以这也是不合理的。那么这是splice(开始位置,删几个)这个方法就很实用,我们可以在checkbox change方法里
触发 obarray.splice($.inArray(obj,obarray),1)
4、appcancheckbox进行全选,对于全选我弄了好久,后来看了listview源码才知道,checkbox 是放在一个div里的 即<div class="checkbox"><input type="checkbok"/></div>,
现在我们要实现的是,在页面最上面点击一个checkbox全选下面所有的checkbox,在最上面的checkbox 设置一个点击事件,
function choose(obj){
//如果点击了全选按钮
if($(obj).prop("checked"){
var list = $(".checkbox");
//获取所有类型为checkbox的div(因为js源码 div包着checbox<div class="checkbox"><input type="checkbok"/></div>) 我们要的是获得里面的input的那个checkbox
//进行遍历通过class获得的div集合
for(var i =0;i<list.length;i++){
// 注意此处 list[i].children[0]获得的是dom元素,无法使用jquery对象的prop方法,因为这个小小的差别我弄了好久,应该将list[i].children[0]转化为jquery
对象 $(list[i].children[0])
$(list[i].children[0]).prop("checked",true)'
}
//如果取消全选
}else{
for(var i=0;i<list.length;i++){
$(list[i].children[0]).prop("checked",false);
}
}
}20
5、在使用js 和jquery方法的时候要注意,dom对象和jquery对象的转换,$(dom对象)就能实用jquery 对象的方法了,dom.get(i)或者dom[i]都是dom对象,x.eq(0)是
jquery 对象