我正在使用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;
}
}
我还在模板中放了一个复选框,但对我来说似乎不自然。 有人可以帮助我抓住第二次点击吗?或者离开复选框可能会更好? 最好的问候。
答案 0 :(得分:0)
诀窍是写好逻辑而不是做任意代码。
我更喜欢编写TextBox_TextChanged事件来检查TextBox是否为空,然后触发数据库调用以清除Date字段。
相反,您可以使用此topic中此处实施的解决方案。