我们遇到的问题是ASP循环遍历表单的元素非常慢。创建的表单只是一个名称和复选框列表(在我们的示例中为21)。然后,我们想要遍历表单元素并找出勾选的复选框。
此例程创建表单,并且是即时的:
<%
y = 0
do while y <= ubound(overdueArray,2)%>
<tr>
<td width="25%"> </td>
<input type="hidden" name="employeeID<%=y%>" id="employeeID<%=y%>" value="<%=overdueArray(2,y)%>">
<td align="center" style="border-width:1px;border-color:<%=session.Contents("PageTitleBorder")%>;border-left-style:solid;border-bottom-style:solid;">
<%response.Write(overdueArray(0,y)&" "&overdueArray(1,y))%></td>
<td align="center" style="border-width:1px;border-color:<%=session.Contents("PageTitleBorder")%>;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;">
<input type="checkbox" id="remind<%=y%>" name="remind<%=y%>" value="sendReminder<%=y%>">
</td>
<td width="25%"> </td>
</tr>
<%y = y + 1
loop
%>
此代码会在屏幕上只显示21个项目时挂起或超时:
x = 0
do while x <= request.Form("total")
if request.Form("remind"&x) <> "" then
response.Write("test")
end if
x = x + 1
loop
我不是开发人员,也不了解ASP,这适用于我的同事,但尚未参加。
请问任何想法或建议?
答案 0 :(得分:1)
对不起,经过几个小时的挣扎,我们解决了。我们首先将request.Form("total")
放入一个会话变量(它是一个隐藏的表单元素),每次在循环中检查变量而不是表单元素。这解决了这个问题。