步骤三 日历事件的实现
( 1 )添加数据集。添加数据集“ MyblogData ”,该数据集的设置如图 91-10 所示。添加数据集“ reverData ”,该数据集的设置如图 91-11 所示。


提示:数据集“ MyblogData ”是以字段“ myblogtm ”等于阶段变量“ myblogtm ”(即 Session(“myblogtm”) )作为筛选的,而数据集“ revertData ”是以字段“ myblogID ”等于变量“ myblogID ”作为筛选的,变量“ myblogID ”在这里只是临时设置,数据集“ revertData ”实际是以字段“ myblogID ”等于数据集“ MyblogData ”的字段“ myblogID ”值作为筛选的,这需要在后面的步骤里进行修改。
( 2 )绑定数据集。绑定数据集“ MyblogData ”的相关字段到页面里如图 91-5 中圆角方框②所示的位置,绑定数据集“ revertData ”的相关字段到页面里如图 91-5 中圆角方框③所示的位置,结果如图 91-12 所示。

( 3 ) 设置【重复的区域】。绑定数据集“ revertData ”的相关字段到页面里如图 91-5 中圆角方框③所示的位置,然后执行【插入】 【应用程序对象】 【重复的区域】菜单命令。
( 4 ) 切换到代码视图,找到数据集“ MyblogData ”的源代码,在其中找到代码
<Parameter Name="@myblogtm" Value='<%# IIf((Not Session("myblogtm") Is Nothing), Session ("myblogtm"), "") %>'Type="Date" />
将其改为:
<Parameter Name="@myblogtm" Value='<%# IIf((Not Session("myblogtm") Is Nothing), Session("myblogtm"), Today) %>' Type="Date" />
(读者可打开【光盘】|【源文件】|【实例 91 】|【 91.2.txt 】文件,直接复制)
提示:这样修改是为了当 Session("myblogtm") 为空值时,以当前的系统日期作为筛选数据。
( 5 ) 找到数据集“ revertData ”的源代码,在其中找到代码 <Parameter Name ="@myblogID" Value='<%# "myblogID" %>' Type="Integer" /> 。
切换到绑定面板,拖拉数据集“ MyblogData ”中的字段“ myblogID ”替换代码“ <%# "myblogID" %> ”,如图 91-13 所示。
( 6 ) 在“ <script runat="server"> ”中定义过程“ MyCalendar_SelectionChanged ”,以响应当前选择的日期所发生的事件,其代码如下所述。

Sub MyCalendar_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Session("myblogtm")=MyCalendar.SelectedDate.ToShortDateString
Response.Redirect(Request.ServerVariables("SCRIPT_NAME"))' 重新载入当前页面
End Sub
(读者可打开【光盘】|【源文件】|【实例 91 】|【 91.3.txt 】文件,直接复制)
提示:由于 Dreamweaver 中的数据集只有在页面载入时才会重新定义、刷新,也就是说载入页面后,在页面中对数据集所做的有关修改,只有在下一次载入页面时才会生效,因此需要利用“ MyCalendar_SelectionChanged ”过程重新载入当前页面。
( 7 )定义日历控件的日期。日历控件在页面载入时,默认显示日期为当前系统日期。但由于在上面的操作中变更当前选择的日期时,页面会重新载入,所以如果不作任何修改,则当变更当前选择的日期后,日历控件还是显示当前系统日期,而不会变更选择的日期。为了正确显示变更后的日期,应在“ Page_Load ”过程中定义日历控件的“ TodaysDate ”(日历控件的“今天”日期)属性为变更后的日期,“ Page_Load ”过程的源代码如下所述。
Sub page_load(Src As Object, E As EventArgs)
If Session("myblogtm")<>nothing Then
MyCalendar.TodaysDate=session("myblogtm")
End If
End Sub
(读者可打开【光盘】|【源文件】|【实例 91 】|【 91.3.txt 】文件,直接复制)
( 8 )在日历控件源代码中添加代码 OnSelection Changed ="My Calenda r_Selection Changed" ,
以绑定“ OnSelectionChanged ”事件的响应过程为“ MyCalendar_SelectionChanged ”,如图 91-14 中圆角方框所示。
( 9 )保存“ index.aspx ”并在 IE 中进行预览。至此,本实例操作完毕。

本实例运用日历控件“ Calendar ”的“ OnSelectionChanged ”事件实现了 BLOG 的日历事件,这是最为简单的方法之一。日历控件“ Calendar ”运用起来虽然简便,但通过它却很难在阳历下显示农历。网上较为盛行的另一种方法就是通过直接编辑 Javascript 日历程序,直接控制日历显示及日历事件。该方法较为灵活,但由于全是代码较为难学,这里就不作详细解说。至此,本实例介绍完毕
本新闻共3页,当前在第3页 1 2 3