请问关于response.write时可否带ID的参数?

yinxun 2014-03-12 05:18:02
代码如下:

<!--#include file="inc_common_all.asp"-->
<!--#include file="UBB.asp"-->
<%

if login then
pagename="管理信息"
else
pagename="查看信息"
end if


call bodySkin()
sub pageContent()
showMsg()
end sub

function showMsg()


sql="select * from yangji_bak"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1

dim x_chicun,x_fangjian,x_weizhi

x_chicun =rs("chicun")

x_fangjian =rs("fangjian")

x_weizhi =rs("weizhi")

%>

<% response.write x_fangjian %>:
<table border=1 width='30%' cellspacing=1 align=left cellpadding=3 bordercolor=#ad8c42 style=BORDER-COLLAPSE: collapse;>
<tr class="title2" align="center">
<td><% response.write x_chicun %></td>
<td><% response.write x_chicun %></td>
</tr>
<tr class="title2" align="center">
<td><% response.write x_chicun %></td>
<td><% response.write x_chicun %></td>
</tr>
</table>

<br><br><br><br><br>

<% response.write x_fangjian %>:
<table border=1 width='45%' cellspacing=1 align=left cellpadding=3 bordercolor=#ad8c42 style=BORDER-COLLAPSE: collapse;>
<tr class="title2" align="center">
<td><% response.write x_chicun %></td>
<td><% response.write x_chicun %></td>
<td><% response.write x_chicun %></td>
</tr>
<tr class="title2" align="center">
<td><% response.write x_chicun %></td>
<td><% response.write x_chicun %></td>
<td><% response.write x_chicun %></td>
</tr>
</table>

<%
rs.close
set rs=nothing
end function
%>


数据库如图:


页面呈现如图:



小弟请问,能不能在每次<% response.write x_chicun %>时能跟一个ID,就是说每个单元格显示不同ID的x_chicun的值?目前都是默认选择了ID为1的第一行数据的值,所以每个单元格写出来的值都是一样的,ID我手写写死
...全文
334 点赞 收藏 11
写回复
11 条回复
taochunsong 2014年03月27日
最简单的方法 在后面加个字段, 把位置用坐标表示出来 就是第几行第几列的标识方法 然后读取出来的数据,可以最简单用div层 位置直接可以输出,不用去拼接 表格,太麻烦
回复 点赞
引用 6 楼 yinxun 的回复:
[quote=引用 5 楼 showbo 的回复:] 晕,你都没有移动过游标,读的都是第一条的数据,之前你的帖子不是回过了,要过滤下,而且你的那个左上右下什么的需要加个排序,程序可不是人,能识别什么左,什么是上
我知道,我的意思是表格的样式不固定,我准备在每个单元格里通过ID写死,比如比第一个格子就写上数据库里ID为1的那条记录,第二个格子就写上数据库里ID为2的那条记录,什么左上,左下其实都没必要写在数据库里的,只是给维护的人看一下,页面上不用呈现,都是我写死的,所以在这种情况下,请问语句怎么写?,简单来说如下图: [/quote]用6个项的数组记录你的对应位置,然后通过位置内容设置这6个项,判断下上下td不一致要如何合并,大概模式如下

<%
 
 
 
showMsg()

 
function showMsg()

set roomrs=conn.execute("select distinct fangjian from yangji_bak")'得到房间号
 
sql="select * from yangji_bak"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
 
 
dim x_chicun,x_fangjian,x_weizhi
dim arr
while not roomrs.eof'循环房间号
redim arr(5)'重新定义数组请清楚上一次的数据,用于存储位置数据,如下图
'0(左上) 1(中上) 2(右上)
'3(左下) 4(中下) 5(右下)
'下面2个变量记录上下有多少个格子,好进行合并
tdup=0
tddown=0

x_fangjian=roomrs(0)
rs.Filter="fangjian='"&x_fangjian&"'"'执行过滤得到此房间的数据
while not rs.eof'填充位置数组
   x_chicun =rs("chicun")
   x_weizhi =rs("weizhi")
   if instr(x_weizhi,"左上")<>0 then
     arr(0)=x_chicun
     tdup=tdup+1
   elseif instr(x_weizhi,"中上")<>0 then
     arr(1)=x_chicun
     tdup=tdup+1
   elseif instr(x_weizhi,"右上")<>0 then
     arr(2)=x_chicun
     tdup=tdup+1
   elseif instr(x_weizhi,"左下")<>0 then
     arr(3)=x_chicun
     tddown=tddown+1
   elseif instr(x_weizhi,"中下")<>0 then
     arr(4)=x_chicun
     tddown=tddown+1
   elseif instr(x_weizhi,"右下")<>0 then
     arr(5)=x_chicun
     tddown=tddown+1
   end if
   rs.movenext
wend 
%>
<% response.write x_fangjian %>:<br />
<table border=1 width='45%' cellspacing=1 align=left cellpadding=3 bordercolor=#ad8c42  style=BORDER-COLLAPSE: collapse;>
<tr class="title2" align="center">
<%
'用于计算上下td不一致时如何合并
upcolspan=""
downcolspan=""
if tdup<>tddown then
  if tdup=3 then'上3下2
    upcolspan=" colspan='2'"
    downcolspan=" colspan='3'"
  else'上2下3
    upcolspan=" colspan='3'"
    downcolspan=" colspan='2'"
  end if
end if
'输出上面的数据行
for i=0 to 2
  if arr(i)<>"" then response.write "<td"&upcolspan&">"&arr(i)&"</td>"
next
 %>
  </tr>
  <tr class="title2" align="center">
  <%
'输出下面的数据行
for i=3 to 5
  if arr(i)<>"" then response.write "<td"&downcolspan&">"&arr(i)&"</td>"
next
   %>
  </tr>
</table> 
<br><br><br><br><br>
<%
  roomrs.movenext
wend
roomrs.close
set roomrs=nothing
rs.close
set rs=nothing
end function
%>
回复 点赞
yinxun 2014年03月13日
引用 5 楼 showbo 的回复:
晕,你都没有移动过游标,读的都是第一条的数据,之前你的帖子不是回过了,要过滤下,而且你的那个左上右下什么的需要加个排序,程序可不是人,能识别什么左,什么是上


我知道,我的意思是表格的样式不固定,我准备在每个单元格里通过ID写死,比如比第一个格子就写上数据库里ID为1的那条记录,第二个格子就写上数据库里ID为2的那条记录,什么左上,左下其实都没必要写在数据库里的,只是给维护的人看一下,页面上不用呈现,都是我写死的,所以在这种情况下,请问语句怎么写?,简单来说如下图:
回复 点赞
晕,你都没有移动过游标,读的都是第一条的数据,之前你的帖子不是回过了,要过滤下,而且你的那个左上右下什么的需要加个排序,程序可不是人,能识别什么左,什么是上
回复 点赞
潮起潮落 2014年03月13日
如果格式确定,你可以按照“weizhi”这个字段来确定表格共有几列,前提是只有左上、左下、中上、中下等等固定的位置 取出来的时候,先循环一遍DataReader,放到一种组织好的结构里面 比如

public class Room
{
    public int ID { get; set; }

    public string Name { get; set; }

    List<TV> TVList { get; set; }
}

public class TV
{
    public int RoomID { get; set; }

    public int Size { get; set; }

    /// <summary>
    /// 如果是固定多少项,可以用枚举代替
    /// </summary>
    public string Position { get; set; }
}
最后得到的可以是一个List<Room> 不明白你所说的带个参数ID的意思 response.write 带上一个参数跟单元格(同样写上这个参数)实现对应绑定?
回复 点赞
yinxun 2014年03月13日
继续求教啊 就是因为表格形式不固定 每个房间的电视摆放不一致 所以没法用循环语句写表格~ 只能写死 所以小弟想问问response.write x_chicun能否带个ID参数,打个比方 response.write x_chicun?ID=1(打个比方,语法我知道肯定不对),这样我就在每个单元格里协商?id=1,?id=2,?id=3…… 直接写死就行了,请大神帮忙解决~
回复 点赞
wtg321 2014年03月13日
可以考虑加一列,目前看来你只有左中右三种情况,那就假设有一列dingwei,里面的数值为左中右的值。 如:100/010/001分别代表左1/中1/右1 200/020/002代表二排的情况下的左1/中1/右1 取值的时候用两个条件并列判断,房间为101且dingwei=100的就是32寸;房间为101且dingwei=200的就是42寸;
回复 点赞
yinxun 2014年03月13日
引用 7 楼 big_shot 的回复:
先建个动态数组,把数据按要求存起来,后再显示
具体怎么弄啊?请详释,谢谢~
回复 点赞
big_shot 2014年03月13日
先建个动态数组,把数据按要求存起来,后再显示
回复 点赞
yinxun 2014年03月12日
引用 1 楼 KongHuLu 的回复:
你应当循环读取Reader输出,或者全部读出来存到数据库里面,以房间号为Key组织起来 然后在页面呈现的时候读取 你这是只读了第一行的内容。。
请问具体怎么写啊?
回复 点赞
潮起潮落 2014年03月12日
你应当循环读取Reader输出,或者全部读出来存到数据库里面,以房间号为Key组织起来 然后在页面呈现的时候读取 你这是只读了第一行的内容。。
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告