您现在的位置: 军旅同心-旅游自驾-军旅文学 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 学习资料 >> 正文
ASP与SQL网站数据库程序设计(15)
作者:.. 文章来源:科学出版社 点击数: 更新时间:2004-1-25 1:03:54
以及

79:  <div id=cItem3>

80:  <table class="ChiDing01" border=0 cellpadding=1 cellspac-ing=1 width='100%'>

81: <tr>

82:      <td width="20">&nbsp;</td>

83:      <td><a href="MoreInfo.asp"style="cursor:Hand" align="absbottom" target="mainframe"><font color=#000000>索取详细信息</font></a></td>

84: </tr>

85:  </table>

程序说明

31行:提供客户端选择“关于我们”的选项。这个选项目前并未提供超级链接的功能,用户可以自行添加必要的链接。

39行:指定当用户选择时,执行的ASP程序为“NewArrival.asp”。

83行:指定当用户选择时,执行的ASP程序为“MoreInfo.asp”。

14-2-3 动态选项的设计

Function.asp”程序的核心与重点。在执行这个程序段后,将会根据表的实际内容,动态产生不同的选项。

Function.asp”程序段

43: <%

44:  On Error Resume Next

45:  SQL = "Select * From 产品类别 order by 类别编号"

46:  Set Rs = OBJConn.Execute(SQL)

47:  datas = rs.getrows(500)

48: %>

49: <%   for i = 0 to ubound(datas,2) %>

50:

51:  <table class="ChiDing01" border=0 cellpadding=1 cellspac-ing=1 width='100%'>

52: <tr>

53:       <td width="7">&nbsp;</td>

54:       <td width='10'><imgsrc="Images/FolderClosed.gif "id="Out<%=I+1%>" style="cursor:Hand" class=cItem align="absbott-om" width="9" height="9"></td>

55:       <td><a href="#<% = datas(1,i)%>" id="Out<%=I+1 %>" style="cursor:Hand" class=cItem align="absbottom"><% = datas (1,i) %></a></td>

56: </tr>

57:  </table>

58:  <div id="Out<%=I+1%>a" style="display:None">

59:  <%

60:  SQL = "Select * From 产品基本信息 Where 类别编号=" & datas(0,i)  & " order by 产品代号"

61:  Set Rs = OBJConn.Execute(SQL)

62:  if not rs.eof then

63:      datas1 = rs.getrows(500)

64:  %>

65:   <table class="ChiDing02" cellspacing="3" border=0 width ='100%'>

66: <% for J = 0 to ubound(datas1,2) %>

67: <tr>

68:      <td width="24">&nbsp;</td>

69:      <td><a href="/ProductShow.asp?ClassifyNo=<%=Datas(0,i)%>#<% = datas1 (0,j) %>" target="mainframe"><% = datas1(1,j)%></a></td>

70: </tr>

71: <% next %>

72:

73:  </table>

74:  <% end if %>

75:  </div>

76: <%

77: next

78: %>

程序说明

44~47行:从“产品类别”表中取出所有记录的内容。

在第47行上,笔者使用的是ADO对象的“getrows”方法,并且限定最大的类别数量为“501”条记录。“getrows”方法可以将SQL Query查询结果的Recordset集合直接转换成相对应的数组,供ASP程序使用,而数组内容的排列方式则与Recordset完全相同。

例如:上述的SQL Query为“Select * From 产品类别”,则使用“getrows”方法之后的数组内容与原表完全相同。所产生的变量为Datas,其信息排列方式为Datas(字段,记录条数)。例如Datas(0,0)的内容即为第一条记录的第一个字段内容(即为类别编号)。

49行:使用ubound函数,这个函数可以取出Datas数组变量中最大的行数(记录条数)。

49~78行:根据“For…Next”语句的变化,同时根据Datas数组变量的数值自动分类;并且根据所取得的“类别编号”,自“产品基本信息”中,取出符合“类别编号”的产品名称。

运作方式:根据“For…Next”语句的变量i的数值,自动在Datas数组变量中逐条取出“类别编号”之后,接着再向“产品基本信息”表查询相符的产品信息,并且使用ADO的“getrows”方法,将查询结果的Recordset存放在Datas1数组变量中。

69行:使用的是Request.QueryString方法。根据Datas以及Datas1数组变量的内容,自动产生超级链接的内容。

例如:Datas(0,0)取出的是“0001”时,而Datas1(0,0)取出的数据是“0001000001”时,所产生的超级链接即为“PorductShow.asp? ClassifyNo= 0001# 0001000001”。这段超级链接的意思是直接执行“ProductShow.asp”程序,并且将画面自动卷动到“ProductShow.asp”输出结果的“0001000001”超级链接上。详细说明请参考”ProductShow.asp”程序的说明内容。

14-2-4 CSS表现方式的控制

在执行这个程序片段后,在网页上可以产生选项功能的“显示”与“隐藏”效果。

Function.asp”程序段

93: <Script language="javascript">

94: <!--

95: function DynamicFunc()

96: {

97: var tID, sTAG, tTag;

98: sTAG = window.event.srcElement;

99: if (sTAG.className == "cItem")

100: {

101:    tID = sTAG.id + "a";

102:    tTag = document.all(tID);

103:    if (tTag.style.display == "none")

104:    {

105:       tTag.style.display = "";

106:       if (sTAG.tagName == "IMG")

107:          sTAG.src = "/Images/FolderOpened.gif";

108:    }

109:    else

110:    {

111:       tTag.style.display = "none";

112:       if (sTAG.tagName == "IMG")

113:       sTAG.src = "/Images/FolderClosed.gif";

114:    }

115: }

116: }

117: cItem.onclick = DynamicFunc;

118: //-->

119: </script>

程序说明

这个程序段的功能为“打开或隐藏”产品名称。当用户在调用这段程序时,请注意以下事项:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页


更多
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 网站地图 | 版权申明 | 网站公告 | 管理登录 |