我想用JavaScript实现一个二级下拉联动。请问需要把从上一个页面传递过来的一个ArrayList<CateGory>对象,其中的CateGory含有两个属性 int id和String name;
转存到JavaScript中的Array数组中去,以实现我需要的功能。经过测试传递过来的ArrayList<CateGory>正确有效,就是在Js中的转存存在问题,希望各位高手解除我的困惑,小弟感激不尽。<script language="javascript">
//数据源,在跳转的时候传递过来的ArrayList接收
//然后通过读出的循环来转换
//初始化Array() JavaScript实现
var array=new Array();
<%
//读出传送来的Lisy对象
List<CateGory> yy=new ArrayList<CateGory>();
yy=(List<CateGory>)request.getAttribute("bigMenu");
for(int i=0;i<yy.size();i++){
CateGory temporaryCateGory=new CateGory();
temporaryCateGory=yy.get(i);
%>
array[<%=i%>]=new Array("<%=temporaryCateGory.getId()%>","根目录","<%=temporaryCateGory.getName()%>");
<%
}
%> //--------------------------------------------
//这是调用代码,以下代码测试可用
var liandong=new CLASS_LIANDONG_YAO(array) //设置数据源
liandong.firstSelectChange("根目录","s1"); //设置第一个选择框
liandong.subSelectChange("s1","s2"); //设置子级选择框
liandong.subSelectChange("s2","s3");
</script>
转存到JavaScript中的Array数组中去,以实现我需要的功能。经过测试传递过来的ArrayList<CateGory>正确有效,就是在Js中的转存存在问题,希望各位高手解除我的困惑,小弟感激不尽。<script language="javascript">
//数据源,在跳转的时候传递过来的ArrayList接收
//然后通过读出的循环来转换
//初始化Array() JavaScript实现
var array=new Array();
<%
//读出传送来的Lisy对象
List<CateGory> yy=new ArrayList<CateGory>();
yy=(List<CateGory>)request.getAttribute("bigMenu");
for(int i=0;i<yy.size();i++){
CateGory temporaryCateGory=new CateGory();
temporaryCateGory=yy.get(i);
%>
array[<%=i%>]=new Array("<%=temporaryCateGory.getId()%>","根目录","<%=temporaryCateGory.getName()%>");
<%
}
%> //--------------------------------------------
//这是调用代码,以下代码测试可用
var liandong=new CLASS_LIANDONG_YAO(array) //设置数据源
liandong.firstSelectChange("根目录","s1"); //设置第一个选择框
liandong.subSelectChange("s1","s2"); //设置子级选择框
liandong.subSelectChange("s2","s3");
</script>
解决方案 »
- jsp上传本地图片问题!
- Gt Grid 在列表中如何修改时间
- 求助:ServLet中JSON对象的传递问题!
- Tomcat发布项目遇到的问题.
- html代码提交到数据后,读取出来后用JSTL显示,却显示出原样,如何才能避免呢?或者有什么函数可以转换回来???
- struts中beans在页面中传递的问题?
- 参考了N多文章还是连接数据库失败,谁能来帮我解释下这是什么错误
- 急,急,急!!!在线等待,马上给分,关于Javamail发邮件时如何判断附件大小,可否有函数!请高手一定帮忙!
- Software caused connection abort: 这是什么错误?
- JSP通过服务器访问其他地址
- (SOS)sybase 数据库 处理XML问题
- 读取url内容后,有乱码 如何解决
array[0]=new Array("华南1地区","根目录","华南地区"); //数据格式 ID,父级ID,名称
array[1]=new Array("华北1地区","根目录","华北地区");
array[2]=new Array("上海","华南地区","上海");
array[3]=new Array("广东","华南地区","广东");
array[4]=new Array("徐家汇","上海","徐家汇");
array[5]=new Array("普托","上海","普托");
array[6]=new Array("广州","广东","广州");
array[7]=new Array("湛江","广东","湛江");我是想存成此中形式的,有没有好办法!
array[<%=i%>]=new Array("<%=类名.id%>","<%=类名.name%>","<%=类名.其他%>");
}
即通过代码将传递过来的ArrayList中的所有对象的属性分别放到Js的array数组中,并且要求按照最上面的那种格式!
array[0]=new Array("华南1地区","根目录","华南地区"); //数据格式 ID,父级ID,名称
array[1]=new Array("华北1地区","根目录","华北地区");
array[2]=new Array("上海","华南地区","上海");
array[3]=new Array("广东","华南地区","广东");
array[4]=new Array("徐家汇","上海","徐家汇");
array[5]=new Array("普托","上海","普托");
array[6]=new Array("广州","广东","广州");
array[7]=new Array("湛江","广东","湛江");
String arr = "";
arr += "[";
for(int i=0;i <yy.size();i++){
if(i!=0){
arr+=",";
}
arr += "['"+yy.get(i).id+"','"+yy.get(i).name+"']"
array[ <%=i%>]=new Array(" <%=类名.id%>"," <%=类名.name%>"," <%=类名.其他%>");
}
arr+="]";
pageContext.setAttribute("list",arr);
%>
<script>
var array = <%= arr %>;
</script>
这样就行了,Array的效率很低的,js中尽量不要用
<%
//读出传送来的Lisy对象
List <CateGory> yy = (List<CateGory>)request.getAttribute("bigMenu"); %>
var array = new Array(<%=yy.size()%>);
<%
for(int i = 0; i < yy.size(); i++){
CateGory temporaryCateGory=new CateGory();
temporaryCateGory=yy.get(i);
%>
array[<%=i%>] = new Array("<%=temporaryCateGory.getId()%>", "根目录", "<%=temporaryCateGory.getName()%>");
<%
}
%>