我需要用戶能夠選擇一個日期,但可能發生的情況是用戶不知道確切的日期或月份,而是年份。設置日期無日期或月份
我正在考慮創建一個選擇器,每個選項都帶有可選項目,並將其保存在DateTime
屬性中。但我不知道如何指定未知部分的值。
我可以使用單獨的int?
字段的日,月和年,但我想知道是否有更好的方法。
任何想法?
我需要用戶能夠選擇一個日期,但可能發生的情況是用戶不知道確切的日期或月份,而是年份。設置日期無日期或月份
我正在考慮創建一個選擇器,每個選項都帶有可選項目,並將其保存在DateTime
屬性中。但我不知道如何指定未知部分的值。
我可以使用單獨的int?
字段的日,月和年,但我想知道是否有更好的方法。
任何想法?
在用戶界面上,您可以使用日期範圍而不是單個日期嗎?
如果他們只知道年份,則選擇一年中1/1至12/31的範圍。無論哪種方式,選擇一個完整的日期,而不是一個無效的/部分的日期是一個不錯的主意。
是使用單獨的字段。具有選定月份的值,在mdl中爲1,2,3 ... 12,在ddl中選擇日期爲1,2,3 ... 31。沒有在ydl中選擇年份。而是繼續像當年一些理想值選擇
通過DDL,MDL,YDL我的意思是你的下拉列表在一天中的名稱,月,年分別
顯示用戶手冊標籤當年的選擇是強制性
可選(示例代碼):
當用戶提交,檢查一個月,一天,你應該做的審定
string userDate = ""
if (ddl.SelectedIndex>0)
{ //then you can try to validate date as
try
{
string temp=ydl.SelectedItem.ToString()+"-"+ydl.SelectedItem.ToString();
temp += " "+ydl.SelectedItem.ToString()
DateTime dt=Convert.ToDateTime(temp);
userDate=dt.ToString("yyyy-MM-dd");
}
catch
{
//Display message on some label that chosen date is invalid
return;
}
}
else
{
userDate=ydl.SelectedItem.ToString();
if (mdl.SelectedIndex>0)
{
userDate += mdl.SelectedItem.ToString();
}
}
現在你可以userDate(字符串)爲你想要使用的目的
在這裏記住,你不應該使用dateDatime,而不是像userDate這樣的字符串,因爲用戶輸入將變得像2012-01-01一個固定的日期。在這種情況下,你不能只使用一年
我建議你創建一個自定義類。
public class CustomDate
{
public int? Day { get; set; }
public int? Month { get; set; }
public int Year { get; set; }
public DateTime? Date
{
get
{
if(Year > 0 && Day.HasValue && Day.Value > 0
&& Month.HasValue && Month.Value > 0)
return new DateTime(Year, Month.Value, Day.Value);
return null;
}
}
}
試試這個在CSS
input[type=date] {
::-webkit-datetime-edit-month-field[disabled]{}
::-moz-datetime-edit-day-field[disabled]{};
::-ms-datetime-edit-day-field[disabled]{};
::-o-datetime-edit-day-field[disabled]{};
}
WPF中,的WinForms和ASP.Net? –
對不起,ASP.Net MVC3。我更新了標籤。 – kerzek
請更改您的問題。 – adatapost