I have a datepicker linked to a calendar control as follows:
<
ig:WebDatePicker ID="StartDate" DropDownCalendarID="StartDate_WebMonthCalendar" runat="server" OnEnterKeyPress="NewFilter" OnValueChanged="NewFilter" AutoPostBackFlags-ValueChanged="On" AutoPostBackFlags-EnterKeyDown="On" > </ig:WebDatePicker>
<ig:WebMonthCalendar ID="StartDate_WebMonthCalendar" runat="server"> </ig:WebMonthCalendar>
My question is that when the dropdown Calendar appears and I select a new date, the new date appears in the WebDatePicker textbox. I would then expect a valuechanged event to fire but it doesn't. What I had to do is move the OnValueChange and AutoPostbackFlags-ValueChanged to the WebMonthCalendar control and in the Server-side event handler sync the two control's date/selecteddate.
Is this the way its supposed to work or am I missing something?
Hello Chris,
If you want to handle every change of the WebMonthCalendar's value you should use
OnSelectedDateChanged
<ig:WebMonthCalendar ID="WebMonthCalendar1" runat="server" Height="200px"
OnSelectedDateChanged ="WebMonthCalendar1_SelectedDateChanged"
Width ="225px">
<AutoPostBackFlags SelectionChanged="On" />
</ig:WebMonthCalendar >
protected void WebMonthCalendar1_SelectedDateChanged(object sender, Infragistics.Web.UI.EditorControls.CalendarSelectedDateChangedEventArgs e)
{
WebDatePicker1.Date = e.NewDate;
}
Otherwise you have to click otside of the WebDatePicker in order to fire the OnValueChanged event
<ig:WebDatePicker ID="WebDatePicker1" runat="server"
DropDownCalendarID="WebMonthCalendar1"
onvaluechanged ="WebDatePicker1_ValueChanged">
<AutoPostBackFlags ValueChanged="On" />
</ig:WebDatePicker >
Let me know if you need more assistance regarding this.
I have two WebDatePickers to select a date range which I initialize with pre-selected dates. When the dates are changed I have it reloading a WebDataGrid.
I'm using the WebMonthCalendar 's OnSelectedDateChanged like described in the post above with the AutoPostBackFlag-ValueChanged set to "On" to get the selection of a date in the calendar to automatically post back and change the contents of the grid. However, I'm getting an annoying behavior. When initially running the application, the first time I click on the arrow to display the month calendar drop down, a post-back occurs and the calendar does not display. Any subsequent clicks on the arrow do not cause a postback and the control works just fine as I had expected. I currently have the EditMode of the WebDatePicker set to "CalendarOnly". If I do not set this and allow the user to change the date manually by typing in the edit box, the annoying behavior returns upon once again clicking on the arrow to display the calendar.
Is there anything I can do to keep this unneeded initial postback event from firing?
Thanks.
I recall having that issue as well. When you initially set the date in the Edit control (Webdatepicker) you also need to set the dropdown's selected date.
DateTime myDate = DateTime.Now;
myDatePicker.Date = myDate;
myDatePicker_WebMonthCalendar.SelectedDate = myDatePicker.Date;
See if that takes care of your initial postback.
Thank you so much, Chris! That solved the problem. I don't think I would have thought but it makes logical sense.
How would you change this to access the changed date for a webDatePicker that is in an item template of a webGridView? (Sorry for necro'ing an old post, but there's so little activity on these forums, I doubt it matters)