注册 登录
编程论坛 ASP技术论坛

复选框信息从数据表内提取

hanson8505 发布于 2010-10-26 10:56, 974 次点击
请问如何使复选框信息从数据表内提取显示,显示格式为按序号排序先排列左边,再排列右边,若数据条目数为奇数时,右侧排列项比左侧多一个。望高手指教
5 回复
#2
yms1232010-10-26 11:30
复选框从表内提取数据,跟读取数据库的操作是差不多的
#3
hanson85052010-10-26 12:24
提取显示的格式排列是有要求的
#4
hams2010-10-26 13:02
作个判断,当是奇数是,做特殊处理,或补一个空数据。
#5
dzt00012010-10-26 13:57
程序代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
checkitems
="A,B,C,D,E,F,G,H,I"        '复选框项目
checkresult="1,0,0,1,1,0,1,0,0"        '选择的项目,1为选中

checkitems
=split(checkitems,",")    '转成数组
checkresult=split(checkresult,",")

checkcount
=ubound(checkitems)+1        '计算有多少个选项
firstcount=int(checkcount/2)        '分两列,计算第一列的选项数
%>
<%=firstcount%> / <%=checkcount%>
<table border="1">
  <tr><td>
<%
for i=1 to firstcount
%>
  <input name="checkitem" type="checkbox" value="1"<%if checkresult(i-1)="1" then%> checked="checked"<%end if%>> <%=checkitems(i-1)%><br />
<%
next
%>
  </td><td>
<%
for i=firstcount+1 to checkcount
%>
  <input name="checkitem" type="checkbox" value="1"<%if checkresult(i-1)="1" then%> checked="checked"<%end if%>> <%=checkitems(i-1)%><br />
<%
next
%>
  </td></tr>
</table>
不知道你的复选框结果是怎么保存,上面的代码是用1,0,0,1,1,0,1,0,0这样保存的

 
#6
coldstone2010-10-27 14:14
你的问题的核心其实是如果让记录集多列显示,表达得不够清晰。
解决的办法不一定要靠ASP,CSS也可以解决。定义一个div,宽度固定,float为left,自然就可以实现你要的效果。
如果你是用table布局,通常的做法是用Mod方法计算累加记录数与列数的余数,为0则换行。如果不能整除,再则补上相对应数量的<td>以保证表格的完整。
程序代码:

Dim i,j,col : i = 1
col = 2 '列数
Response.Write "<tr>"
do while not rs.eof
  if i mod col = 0 Then Response.Write "</tr><tr>"
  Response.Write "<td><label><input type=""checkbox"" value="""&rs("id")&""" name=""check"" />" & rs("name") & "</label></td>"
    rs.MoveNext
    i = i + 1
loop
If (i-1) Mod col > 0 Then
    For j = 0 To col - ((i-1) Mod col)
        Response.Write "<td>&nbsp;</td>"
    Next
End If
Response.Write "</tr>"

上面的代码可以适应任意列,包括你帖子里要求的2列。
1