摘要
之前在「Calendar 动态产生子控件的 Event Handler」一文中有提到如何处理 Calendar 在 DayRender 事件动态产生按钮的事件处理,文中最后有提及,若 Calendar 控件有类似 GridView 控件中有 RowCommand 事件,在使用上就可以更简化。所以本文将扩展 Calendar 控件,新增 DayCommand 事件,就动态产生的按钮可以可以引发 DayCommand 事件,以便做后序的命令处理。
 
扩展 Calendar 控件
继承 Calendar 命名为 TBCalendar,新增 DayCommand 事件,覆写 RaisePostBackEvent 方法,此方法是在处理引发 PostBack 产生的控件事件,在此判断若 PostBack 传入的自变量为 DayCommand${0}${1} 格式 (其中 {0} 为 CommandName,{1} 为日期),则引发 DayCommand 事件。另外新增 GetDayCommandEventReference 方法,提供取得引发 DayCommand 事件的客户端指令码。

End Class


测试程序
在页面上放置 TBCalendar 控件,在 DayRender 事件中动态产生一个 HtmlButton 按钮,并利用 GetDayCommandEventReference 方法取得引发 DayCommand 事件的客户端指令码。在 DayCommand 事件中将 e.CommandName 及 e.Date 输出在页面上。

End Sub


执行程序,按下某一日期的 [删除] 钮,就会引发其对应的 DayCommand 事件。

扩展 Calendar 控件 - DayCommand 事件

相关文章: