打印本文 打印本文  关闭窗口 关闭窗口  
DW MX实例:网站在线调查统计
作者:陈鹏  文章来源:eNet  点击数  更新时间:2009/9/12 9:09:21  文章录入:陈鹏  责任编辑:陈鹏

网站中常有一个栏目提供关于网站中某个项目的调查,并显示统计资料。本实例将介绍公司网站如何实现在线产品意见调查,并显示统计资料及统计柱形图。

  效果说明 用户通过投票评价公司产品,有“很好”、“好”、“一般”、“差” 4 种意见,投票提交后,只能在下次访问时才能显示自身的投票结果。统计图表及统计结果是目前的投票结果分析,如图 90-1 所示。

  创作构思 通过单选按钮及按钮事件实现在线调查,通过 VML 实现统计图表的输出。

  操作步骤

  步骤一 基本页面设计

  ( 1 )添加在线调查内容。打开“ index.aspx ”,在“ LeftTb ”表格中添加 8 行,在新添加的第 3 行中添加“ asp :按钮”,设置文本为“投票”, ID 为“ PollButton ”,其他参数设置如图 90-2 中圆角方框所示。

  
Dreamweaver


  ( 2 )添加“ asp :单选按钮列表”。在新添加的第 2 行中添加“ asp :单选按钮列表”,并设置有关列表项,如图 90-3 所示。

  
Dreamweaver


  提示: 在“ asp :单选按钮列表”中添加的 4 个列表项分别为① “很好”标签,值为“ VeryGood ”;② “好”标签,值为“ Good ”;③ “一般”标签,值为“ Commandly ”;④“差”标签,值为“ Mistake ”。这样设置是为了与“ POLL ”表中的 4 个字段名设置相同。

  ( 3 )添加数据集“ PollData ”。添加数据集“ PollData ”,用于获取“ VeryGood ”(很好)、“ Good ”(好)、“ Commandly ”(一般)、“ Mistake ”(差)这 4 种投票结果,其参数设置如图 90-4 所示。

  ( 4 )绑定动态文本到行中。将数据集“ PollData ”中的动态文本绑定到新添加的行中,结果如图 90-5 所示。

  
Dreamweaver

热门推荐 控制电脑时间 定时关机我可以 SQL注入漏洞初级应用之Access篇

  步骤二 实现投票及统计图表

  ( 1 )在“ <script runat="server"> ”中添加“ PollButton_Click ”过程,用于在单击完“投票”按钮后,将投票结果提交到“ POLL ”表中,给与投票意见相关的字段值加上“ 1 ”,其代码如下所述。

  Sub PollButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)

  Dim Cpadapter AS new OleDbDataAdapter

  Dim CpCommand AS new OleDbCommand

  Dim dt AS System.Data.DataSet

  Dim Tystring as string

  Conn.open()

  Cpstring2="Update POLL SET "+Pollradio.SelectedItem.Value+"="+cstr (PollData. FieldValue(Pollradio.SelectedItem.Value, nothing)+1)

  CpCommand=new OleDbCommand(Cpstring2,conn)

  CpCommand.ExecuteNonQuery()

  End Sub

  (读者可打开【光盘】|【源文件】|【实例 90 】|【 90.1.txt 】文件,直接复制)

  提示:由于 Dreamweaver 中“更新记录”服务器行为不支持事件处理,所以只能借助“ DataAdapter ”对象更新“ POLL ”表的记录。由于在前面的操作中已经设置单选按钮列表中的选项值与“ POLL ”的字段名相同,那么单击单选按钮列表中的选项,即可从“ Pollradio.SelectedItem.Value ”中获取投票的字段名。

  ( 2 )绑定“ PollButton_Click ”过程到“投票”按钮的“ OnClick ”事件响应过程中。

  ( 3 )在代码视图中找到“ ”标签,并将其改为“ ”,将 XML 命名空间定义为“ v ”。然后在“ ”标签中添加如下所述的代码。

  <style>

  v\:*{behavior:url(#default#VML);}

  </style>

  (读者可打开【光盘】|【源文件】|【实例 90 】|【 90.2.txt 】文件,直接复制)

  
Dreamweaver


  这样做是为了将命名空间“ v ”与系统预定义的行为 VML 连接。这样定义以后,就可以通过“ ”在网页中进行各种图像的绘制,结果如图 90-6 中圆角方框所示。
热门推荐 控制电脑时间 定时关机我可以 SQL注入漏洞初级应用之Access篇

  ( 4 )找到如下所述的代码,并将其删除。

  <!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML4.01Transitional//EN" "http://www.w3.org/TR/html4/

  loose.dtd">

  ( 5 )在“ <script runat="server"> ”中添加“ DrawPoll ”过程,以输出统计图表,其代码如下所述。

  Sub DrawPoll()

  Dim Pollar(3) As Integer

  Dim TotalPoll As Integer

  Dim I As Integer

  Dim MathPoll As Single

  Pollar(0)=PollData.FieldValue("VerGood", nothing)

  Pollar(1)=PollData.FieldValue("Good", nothing)

  Pollar(2)=PollData.FieldValue("Commandly",nothing)

  Pollar(3)=PollData.FieldValue("Mistake", nothing)

  TotalPoll=Pollar(0)+Pollar(1)+Pollar(2)+Pollar(3)

  Response.Write("<Table Width='80%' bgcolor='#FFFFFF'><tr alige='center' style= 'font-size: 9pt ' valign='bottom'>")

  For I=0 to 3

  MathPoll=Math.Round(Pollar(I)/TotalPoll,2)*100

  Response.write ("<td Width='25%'><v:rect fillcolor='#FAB092' style= 'width:20;color:navy;height:"+Cstr( MathPoll*2)+"'><br> "+Cstr(MathPoll)+"%<v:Extrusion backdepth=' 5pt ' on='true'/></v:rect></td>")

  Next

  response.Write("</tr><tr style='font-size: 9pt '><td > 很好 </td><td alige='center'> 好 </td><td> 一般 </td><td> 差 </td></Table>")

  End Sub

  (读者可打开【光盘】|【源文件】|【实例 90 】|【 90.3.txt 】文件,直接复制)

  程序说明:

  代码中数据集“ PollData ”的字段值分别存储在“ Pollar ”的 4 个数据组中,通过“ TotalPoll ”变量统计投票总数。首先通过“ Response.Write ”在页面中输出表格及第一行。通过循环为第一行定义 4 列,在第一列中绘制 VML 柱形图。 VML 柱形图的 fillcolor (填充颜色)为“ #FAB092 ”,宽度为“ 20 ”,高度为每项投票意见占投票总数的百分比“ Math.Round(Pollar(I)/TotalPoll,2)* 100 ” 乘以“ 2 ”,这样做是为了将投票意见占投票总数百分比的高度增加一倍,最后通过“ Response.Write ”在页面中为表格添加 1 行 4 列,并为每一行定义文字。

  ( 6 ) 在要显示统计图表的行中添加代码 <% DrawPoll() %> ,如图 90-7 中圆角方框所示。

  
Dreamweaver


  ( 7 )保存文件后在 IE 中浏览效果。

  本实例介绍通过 VML 实现统计分析图,这是目前渐渐流行的方法之一。在实际应用中,常常通过统计有关投票比例,并以此动态显示统计图的宽度或高度,从而实现统计分析图的。至此本实例操作完毕。
热门推荐 控制电脑时间 定时关机我可以 SQL注入漏洞初级应用之Access篇
打印本文 打印本文  关闭窗口 关闭窗口