我有两个名为asclist,arclist的arraylists,它包含升序记录和降序记录。在JSP中,我可以迭代这两个arraylist值。它运行正常。我的代码如下:
List <UserInfo> asclist=new ArrayList<UserInfo>();
asclist=(ArrayList)request.getAttribute("ascend");
if(!asclist.isEmpty())
{
for(UserInfo info: asclist)
{
out.print("<td>"+info.getId()+"</td>");
out.print("<td>"+info.getName()+"</td>");
out.print("<td>"+info.getAge()+"</td>");
out.print("<td>"+info.getSalary()+"</td>");
out.print("<br>");
}
}
List <UserInfo> desclist=new ArrayList<UserInfo>();
desclist=(ArrayList)request.getAttribute("descend");
if(!desclist.isEmpty())
{
for(UserInfo info: desclist)
{
out.print("<td>"+info.getId()+"</td>");
out.print("<td>"+info.getName()+"</td>");
out.print("<td>"+info.getAge()+"</td>");
out.print("<td>"+info.getSalary()+"</td>");
out.print("<br>");
}
}
%>
我需要的是如何使用具有相同按钮的功能在javascript中实现此代码。第一次,通过单击按钮升序应该工作,下次如果我单击按钮下降应该工作。我们怎样才能做到这一点。提前谢谢..
我的JavaScript代码是
<script>
function Ascend()
{
<%
List <UserInfo> alist=new ArrayList<UserInfo>();
alist=(ArrayList)request.getAttribute("ascend");
if(!alist.isEmpty())
{
for(UserInfo info: alist)
{
out.print("<td>"+info.getId()+"</td>");
out.print("<td>"+info.getName()+"</td>");
out.print("<td>"+info.getAge()+"</td>");
out.print("<td>"+info.getSalary()+"</td>");
out.print("<br>");
}
alist.clear();
}
else
{
out.print("The list is empty");
}
%>
}
</script>
<input type="button" onclick="Ascend()" value="SORT" />
但它没有用......
答案 0 :(得分:0)
你应该尝试在函数中填充一个javascript数组(可能是一个数组数组),然后用它来设置html中的值
function Ascend()
{
var list = [];
<%
List <UserInfo> alist=new ArrayList<UserInfo>();
alist=(ArrayList)request.getAttribute("ascend");
if(!alist.isEmpty())
{
for(UserInfo info: alist)
{
out.print("list.push([\"" + info.getId() +"\"]);")
}
alist.clear();
}
%>
// write javascript code to iterate over 'list' and create html elements on the client side
}
</script>
基本上你需要使用jsp
中的代码生成javascript代码