调用日历控件中的Checkbox CheckedChanged事件
本文关键字:Checkbox CheckedChanged 事件 日历 控件 调用 | 更新日期: 2023-09-27 18:15:24
目前我正在做一个Asp。Net应用程序。. Net日历控件和OnDayRender()方法,我在其中动态添加Checkbox控件。我也附上CheckedChanged事件处理程序。但是每当我单击复选框时,它不会调用服务器端CheckedChanged()方法。任何帮助都会非常感激。谢谢。
Asp。Net代码:
<div>
<asp:Calendar
ID="Calendar1"
runat="server"
NextPrevFormat="FullMonth"
ForeColor="WhiteSmoke"
SelectionMode="Day"
DayNameFormat="Full"
Font-Names="Book Antiqua"
Font-Size="Medium"
OnDayRender="Calendar1_DayRender">
</asp:Calendar>
</div>
服务器端: protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
CheckBox checkBox1 = new CheckBox();
checkBox1.AutoPostBack = true;
checkBox1.Width = 25;
checkBox1.Enabled = false;
checkBox1.CheckedChanged = checkBox1_CheckedChanged;
e.Cell.Controls.AddAt(1, checkBox1);
e.Cell.Font.Size = FontUnit.XLarge;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
// Do some operation...
}
Calendar的DayRender
事件正如它所说的那样——它是在呈现过程中触发的事件,就在呈现给定日期的单元格之前。由于此事件在页生命周期的后期触发,因此不能添加触发事件的控件。
来自Calendar文档:
"因为在呈现Calendar控件时引发DayRender事件,所以您不能添加也可以引发事件的控件,例如CheckBox。您只能添加静态控件,例如文字控件、标签、图像和超链接。"
解决方案。