【发布时间】:2013-06-05 20:36:53
【问题描述】:
我有一个简单的 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 设置为True,并在TextChanged 事件上设置了一个函数(尽管TextChanged 不是这里的问题)。
在Page_Load,我有:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
StartDateCalendarExtender.SelectedDate = DateTime.Now.AddDays(-1);
}
}
在打开页面时,Page_Load 设置日期,但 AutoPostBack 会在 Page_Load 之后立即触发回发,并在 IsPostBack 设置为 true 的情况下再次调用它。
是否有一种服务器端方法可以防止这种回发?
我尝试将AutoPostBack 属性设置为false,将SelectedDate 更改为true,但它一直在触发回发。
【问题讨论】:
标签: asp.net postback ajaxcontroltoolkit