1
我有一個簡單的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,但它會持續觸發回發。
非常聰明,先生。然而,我的CalendarExtender然後不再有日期,當我打開它時,選擇了其他日期(CalendarExtender實際上默認爲'DateTime.Now'。假設我想將它設置爲'DateTime.Now.AddDays(-1) '。 – MPelletier
@MPelletier對我來說,控件是從文本框中讀取並顯示日期時間的...... – Aristos
是的,你是對的,我做了其他一些不正確的事,謝謝! – MPelletier