Display only chosen dates in datepicker - c#

I have history window with date picker but there’s some days without any record in DataBase, I want to disable this days in the datepicker.
Any ideas please.
Thank you

You can use the DayRender event handler for disabling the dates in the datepicker. Refer this sample site to know.

Have a look at the DatePicker.BlackoutDates Property. Dates in this collection will appear as disabled on the drop-down calendar.

Related

Stop DatePicker from resetting the TimeOffDay when new date is selected

I have a DatePicker which displays the date only and a separate TextBox that displays the time. Both elements use TwoWay binding.
My issue is that when ever I adjust the date using the DatePicker, my time resets to 00:00. Is there a way to disable this behavior and leave the TimeOfDay alone? I can't seem to find an answer anywhere.
I know I could grab the time with a GotFocus event and then manually restore, but it seems messy.
The DatePicker and TextBox should be bound to two different source properties, a DateTime? and a TimeSpan respectively.
The built-in DatePicker control selects only a date without any specific time so it makes no sense to try to display the time of the selected date in a TextBox.

How to programatically dismiss the calendar of a DateTimePicker

I am working on a Windows Form that uses a good amount of DateTimePicker controls.
As per spec, the controllers need to show 'no date' initially till user manually selects a date.
As per the DateTimePicker functionality, we cant assign 'nothing' as a value.
So what we do is set a default minimum date, and then change the custom format of the control to "", to give the illusion of an empty field.
A quirk we have found is that when the user clicks on the DateTimePicker and selects a new date for the first time, his initial click does not dismiss the calendar. So instead the calendar persists, and the user has to manually click outside the control to dismiss the calendar.
To make the user experience slightly worse, while in this state the calendar is immune to any further date selection. So the date selection is stuck with the initially selected date, and the user needs to click out.
Once a date has been selected by the control, selecting a new date dismisses the calendar as expected.
My best guess would be that it would have something to do with the custom format that is there originally, which causes a hiccup with the control when a new properly formatted date is selected.
I am trying to find a way to 'force' the calendar to dismiss if open on value change, but I am not finding the way to do this.
I have even tried to set focus elsewhere on value change, but no luck either.
Has anybody else experienced this behavior and/or know of a way around it?
Thanks!
Some of the code-----------
//if dateTime property has not been saved, then call ClearDateTime on the controller, else display the saved value.
public static void ClearDateTime(DateTimePicker dtp)
{
dtp.Value = DateTime.Today.AddDays(-1);
//set the format
dtp.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
// set custom format to empty
dtp.CustomFormat = " " ;
}
// When value is changed/date is selected
private void DateTimePicker_ValueChanged(object sender, EventArgs e)
{
MainFormUtilities.ShowDateTime(this.DateTimePicker);
this.LockFormDown();
}
public static void ShowDateTime(DateTimePicker dtp)
{
dtp.Format = System.Windows.Forms.DateTimePickerFormat.Long;
}
Essentially you need to manually raise the CloseUp event, please refer to the solutions here, How can I programmatically close the dropdown calendar of a datetimepicker or update the dropdown calendar to reflect the .Value property?.
I had a similar situation where a client insisted on having the field show no date (appear blank). I gave up on trying to hack the standard .NET DateTimePicker and used the DevExpress DateEdit control which does allow a blank value.
The solution I have pursued that was most practical for my project was the suggestion by Reniuz, to use a checkbox to control the values and behaviour of the DateTimePicker.
If a user wants to add a date, he selects the checkbox which enables the Picker and defaults to todays date.
If he wants to clear the date (ie not submit a date after all) he unchecks the checkbox which clears the picker with a empty format and we save nothing to the database.
If I had the points I would upvote all the other suggestions. They were helpful, but this solution seemed to be the practical path for us. Thanks to all again!

How to disable the previous Dates in WPFToolkit DateTimePicker?

In our current Project we are using the WPFToolkit DateTimePicker, Its having lot of events that we are using instead of WPF DatePicker. But there is one problem with this control. We cannot disabled the previous dates. We don't want the user to select the previous dates in the calendar, Suppose the DatePicker name is ExDatePicker but we cannot write ExDatePicker.MinDate = DateTime.Today or DateTime.Now in the ExDatePicker.Loaded method.
Can we do anything else to disable the previous dates? In WPF DatePicker we have one option dateTimePicker.MinDate = DateTime.Now;
I am missing this feature very much. Help or suggestions please.
If you are using an older version of the WPFToolkit you have to update because the fixed this issue some month ago: Add Mininum/Maximum properties in DateTimeUpDown

Selection in Date Control

Now, I am working with asp.net , C# and I have made custom controls . In my custom controls especially in Date control, I want to select only month and day part in OnFocus Event.
Right Now, I have wrote
control.select();
then , as usual, the text of the control(2012/08/04) will be selected.
But now I want to give selection only on the part of the month and day(08/04). I am searching many ways to do it. But I haven't got any ways until now. So I would like to know that Can I give a selection on only month and day part(08/24) of a Date Control.
With regards

MaskedExtender and CalendarExtender in asp.net

I have one textbox in asp.net application. I have used MaskedEditExtender and CalendarExtender. I use the date format yyyy-mm-dd. When i type the date in textbox the typed date displayed in the textbox. But when i select date from calender the date is not displayed in the textbox. Only the masked format "_--_" is displayed. Can anyone able to help me to solve the problem. Thank you..
Make sure your CalendarExtender has the runat="server", Format="yyyy-mm-dd" and TargetControlID="YourTextBox" properties set.
Have you considered using JQuery? It has a lovely Calendar control (datePicker) which is part of the JQuery.UI library. Much more useful than the ASP.AjaxToolkit stuff!

Categories

Resources