( 6 )添加数据集“ ADData ”。在【服务器行为】面板中添加数据集“ ADData ”,该数据集的设置如图 95-13 所示。 ( 7 )调整 【插入记录】服务器行为的源代码。 切换到代码视图,找到该【插入记录】服务器行为的源代码,设置其 ID 为“ ADinsert ”,如图 95-14 中圆角方框①所示。删除图 95-14 中圆角方框②、③所示的代码,将图 95-14 中圆角方框④所示的值由“ true ”改为“ false ”。 ( 8 )修改“ Page_Load ”过程,修改后该过程的源代码如下所述。 Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Session("strFilename") <> Nothing Then Dim strADAddr As string strADAddr="adimages/" + Session("strFilename") Session("strFilename")=Nothing ADinsert.CommandText = "INSERT INTO Ad (ADLinkr, ADName, mostgree, Probaly,ADAddr) VALUES ('" + Request.Form("ADLinkr") + "' ,'" + Request.Form("ADName") + "'," + Request.Form("mostgree") + ", " + Request.Form("Probaly") + ",'" + strADAddr+ "')" ADinsert.SuccessURL = "admin.aspx?ADAddr="+strADAddr ADinsert.Debug = True End If End Sub (读者可打开【光盘】|【源文件】|【实例 95 】|【 95.3.txt 】文件,直接复制)
程序说明: 该过程主要是重新定义“ ADinsert ”插入记录服务器行为的“ SQL ”命令,执行成功后再次打开“ "admin.aspx ”页面,并将广告图片上传到网站上的地址“ strADAddr ”传递给 URL 参数“ ADAddr ”。 ( 9 )找到【预览】按钮的源代码,设置其“ disable ”属性(设置按钮是否有效),在其代码中插入代码 <% =iif((ADData.RecordCount>0),"","disabled='disabled'") %> ,结果如图 95-15 中圆角方框所示。
( 10 )设置【打开浏览器窗口】对话框。切换到设计视图,选择【预览】按钮,在【行为】面板中单击【 + 】按钮,再在弹出的快捷菜单中选择【打开浏览器窗口】命令,打开【打开浏览器窗口】对话框,在该对话框中进行如图 95-16 所示的设置。
( 11 )切换到代码视图,找到【预览】按钮,在“ OnClick ”属性中添加如图 95-17 中圆角方框所示的代码。
( 12 )保存“ admin.aspx ”。“ preview.aspx ”页面是素材直接提供的,页面中只是添加了一个图像及一个数据集“ ADData ”,并绑定数据集“ ADData ”下的“ ADAddr ”字段到图像的“ src ”属性中。 步骤四动态广告随机显示 ( 1 )在开始这一步操作之前,先介绍动态广告的运作原理。广告图片的显示是根据广告图片录入时输入的“显示机率”随机显示的,如果当时设置某个图片的“显示机率”为高,则该图片在总的广告图片中显示的概率就高了。但有一点就是其“显示次数”不能超过“最大显示次数”。打开“ show.aspx ”页面,该页面也是原来素材提供的,如图 95-18 所示。
( 2 )添加数据集“ ADData ”和“ showData ”。在【服务器行为】页面中添加数据集“ ADData ”,具体设置如图 95-19 所示。然后再添加数据集“ showData ”,具体设置如图 95-20 所示。
( 3 )添加文本框与服务器行为。在页面中添加一个“ asp :文本框”,保持默认设置。然后在【服务器行为】面板中添加一个【更新记录】服务器行为,具体设置如图 95-21 所示。 提示:这里添加的文本框是临时的,是为了添加【更新记录】服务器行为而添加的,所以该文本框的设置对程序没有影响。而添加【更新记录】服务器行为则是用来添加文本框的,其设置也是临时的。简单地说,上面所做的都只是为了能够在页面中添加一个【更新记录】服务器行为。 ( 4 )调整【更新记录】服务器行为的源代码。切换到代码视图,找到该【更新记录】服务器行为的源代码,设置其 ID 为“ Upgree ”,如图 95-22 中圆角方框①所示。删除图 95-22 中圆角方框②、③所示的代码,然后将图 95-22 中圆角方框④的值由“ true ”改为“ false ”。
( 5 )参照图 95-11 添加“ Page_Load ”过程,并对该过程的代码做如下所述的修改。 Sub Page_Load(Src As Object, E As EventArgs) Dim i, j, k, TotalNum, theId, theNum, Arrl(),Degreein,mostgreein As Integer TotalNum = 0 For i = 0 To ADDataSet.RecordCount -1 theId = ADDataSet.FieldValueAtIndex(i, "id", Nothing) If ADDataSet.FieldValueAtIndex(i, "Probaly", Nothing) = 0 Then theNum = 1 Else theNum = ADDataSet.FieldValueAtIndex(i, "Probaly", Nothing) End If Degreein=ADDataSet.FieldValueAtIndex(i, "Degree", Nothing) mostgreein=ADDataSet.FieldValueAtIndex(i, "mostgree", Nothing) If mostgreein> Degreein Then TotalNum = TotalNum + theNum ReDim Preserve Arrl(TotalNum) For k=1 To theNum Arrl(j) = theId j = j + 1 Next End If Next If TotalNum <> 0 Then i = CInt(TotalNum * Rnd()) Session("showID") = Arrl(i) Upgree.CommandText = "UPDATE Ad SET Degree="+cstr(showData. FieldValue ("Degree", Nothing) +1) +" WHERE ID="+cstr(Session("showID")) Upgree.Debug = True End If End Sub (读者可打开【光盘】|【源文件】|【实例 95 】|【 95.4.txt 】文件,直接复制) 程序说明: 程序中通过两个“ For ”循环所完成的操作是,统计“ AD ”表里字段“ Probaly ”中所有记录的总和,即统计所有广告图片的总机率;将广告图片的 ID 按“ Probaly ”值存储到数组“ Arrl ”中,例如“ Probaly ”为 10 ,则分别把广告图片的 ID 号存储到 10 个数组“ Arrl ”中,使显示次数大于最大显示次数的广告图片不在以上统计中。接着通过随机操作获取数组“ Arrl ”的数组号,将该数组号的值传递给“ Session("showID") ”,以建立数据集“ showData ”,并将“ AD ”表中该广告图片的显示次数增加“ 1 ”。 ( 6 )切换至设计视图,选择页面中的初始图像,为其设置动态“ src ”属性,如图 95-23 所示。
( 7 )保存“ show.aspx ”。 本实例主要运用“ Rnd() ”随机函数并结合数据集,实现广告图片的随机显示,这是实际应用中最常用的方法。通过该方法可以更好地将广告图片显示次数与广告显示所取得的收益联系起来。至于,如何将广告图片显示次数与广告显示所取得的收益紧密联系起来,这就留给读者们在实际应用中进一步研究。至此,本实例操作完毕。
|