为什么这个经典的ASP下拉列表没有选择正确的值



循环中的前几个下拉菜单将正常工作(有3条测试记录,这是从SQL中获取的)。为什么要为第三个值选择列表中的最后一个值,然后继续为所有空的clientno()值选择最后一个数值?

<%For k = 0 to 4%>
<td colspan ="5"><select name = "clientnos(<%=k%>)" id="aliasInput" >
<option value=""></option>
<%
strSQL1 = "select cno, aliasname from Clients order by Aliasname asc"
Set rs1 = objConnection.Execute(strSQL1, ,adCmdText)
call ErrorHandler(err)
arr1 = rs1.GetRows()
for i = 0 to UBound(arr1,2)
    cno = trim(arr1(0,i))
    aliasname = trim(arr1(1,i))
%>
<%if cno <> clientnos(k) Then%><option value = "<%=cno%>"><%=aliasname%></option><%end if%>
<%if cno = clientnos(k) Then%><option value = "<%=cno%>" selected><%=aliasname%></option><%end if%>
<%
next
%>
</select></td>
<%next%>

我通过最初默认为空白选择来修复错误的选择,并发现下拉列表的初始值导致了下拉列表上最后一条记录不正确的问题。这是更正后的代码。

<td colspan ="5"><select name = "selectedclientnos(k)" id="aliasInput" >
<option value="" selected></option>
<%
strSQL1 = "select cno, aliasname from Clients order by Aliasname asc"
Set rs1 = objConnection.Execute(strSQL1, ,adCmdText)
call ErrorHandler(err)
arr1 = rs1.GetRows()
for i = 0 to UBound(arr1,2)
    cno = trim(arr1(0,i))
    aliasname = trim(arr1(1,i))
%>
<%if cno <> clientnos(k) Then%><option value = "<%=cno%>"><%=aliasname%></option><%end if%>
<%if cno = clientnos(k) Then%><option value = "<%=cno%>" selected><%=aliasname%></option><%end if%>
<%
next
%>

相关内容

最新更新