我有一个简单的 CalendarExtender(来自 AjaxControlToolkit)附加到一个文本框。
<asp:TextBox ID="StartDateText" runat="server" MaxLength="10" Width="70px" AutoPostBack="True" OnTextChanged="StartDateText_TextChanged" />
<asp:ImageButton ID="ImageCalendarStartDate" runat="server" ImageUrl="~/images/Calendar_scheduleHS.png" AlternateText="Click to show calendar" />
<asp:CalendarExtender ID="StartDateCalendarExtender" runat="server" TargetControlID="StartDateText" PopupButtonID="ImageCalendarStartDate" />
为了控制用户输入,我在文本框上AutoPostBack
设置了 to True
,并在事件上设置了一个函数TextChanged
(尽管TextChanged
这里不是问题)。
在Page_Load
中,我有:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
StartDateCalendarExtender.SelectedDate = DateTime.Now.AddDays(-1);
}
}
打开页面时,Page_Load
设置日期,但 AutoPostBack 会在 之后立即触发回发,并在设置为 true 的Page_Load
情况下再次调用它。IsPostBack
有没有一种服务器端的方法来防止这种回发?
我尝试将AutoPostBack
属性设置为 false,更改SelectedDate
并将其设置回 true,但它一直在触发回发。