【发布时间】:2016-01-09 05:11:36
【问题描述】:
我正在使用 ASP.Net 应用程序。在日历上选择日期意味着任务已完成,因此该记录将进入 SQL 数据库。但是,有时用户会错误地选择日期,所以我需要让他们有机会以某种方式取消选择日期。 我认为让用户这样做最自然的方法是在选定的日期再次点击。 我试图通过“SelectionChanged”日历的事件来实现这一点,但它没有触发再次点击选定的日期,这是有道理的,因为实际上选定的日期没有改变。 然后我尝试使用“DayRender”事件。因此,我将 SelectedDate 与 VisibleDate 进行比较,如果两个属性具有相同的日期,则清除日期,否则选择日期。 它在第一次调用事件时起作用,但是当第二天必须渲染并清除日期时再次触发事件:D
protected void Claim_Edit_PickupDone_Calendar_DayRender(object sender, DayRenderEventArgs e)
{
Calendar cal = (Calendar)sender;
if (cal.SelectedDate == cal.VisibleDate)
{
cal.SelectedDates.Clear();
cal.VisibleDate = DateTime.MinValue;
}
else
{
cal.VisibleDate = cal.SelectedDate;
cal.SelectedDayStyle.BackColor = System.Drawing.Color.Goldenrod;
}
}
我还在模板中放置了一个复选框,但这对我来说似乎不自然。 有人可以帮我抓住第二次点击吗?或者离开复选框可能会更好? 最好的问候。
【问题讨论】:
-
为什么不能简单地编写 textbox_textchanged 事件?让用户清空所选日期的文本框并向 db 发送指令以清除该字段
-
@techspider。嘿,谢谢你分享你的想法。这听起来一点也不坏。让我看看情况如何,我会回复你的。