我已经为挑选日期构建了一个自定义 Web 控件。它由 3 个下拉列表组成。在他们的 selectedIndexChanged 事件中,我检查这样的日期。
protected void SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddList = sender as DropDownList;
if (ddlDays.SelectedIndex > 0 && ddlMonths.SelectedIndex > 0 && ddlYears.SelectedIndex > 0)
{
int day = ddlDays.SelectedIndex;
int month = ddlMonths.SelectedIndex;
int year = int.Parse(ddlMonths.SelectedValue);
try
{
DateTime date = new DateTime(year, month, day);
}
catch
{
if (OnDateNotValid != null)
OnDateNotValid("Entered date is not valid");
//Here I want to invoke PosBack on the page where I use this control
}
}
}
我实际上将警告标签文本更改为错误描述,但由于标签未显示的形式中没有回发。这里有一些考虑: 1. 我将下拉列表的 AutoPostBack 属性设置为 false,因为每次更改 itemindex 后重新加载页面都令人沮丧。2. 我尝试在控件上放置一个按钮并调用它的 onbuttonclick 事件,但它不起作用。
现在,如果我的控件发现日期无效,我需要向页面发送回发。
PS 当我在 SelectedIndexChganged 方法的开始处设置断点并更改任何下拉列表的索引时,调试器不会在该断点处停止。我已将所有下拉列表 SelectedIndexChanged 事件分配给此方法。