2013-08-20 2 views
1

Мне была назначена задача проверки поля даты, которое заполняется при создании счета-фактуры. Это текстовое поле с тремя объектами кнопки, которые позволяют пользователю выбирать дату из календаря, вводить сегодняшнюю дату или удалять запись даты.Дата проверки - ввод только даты в течение текущего месяца

Моя задача - убедиться, что пользователи не могут ввести дату, которая НЕ находится в текущем месяце (двойной отрицательный ... сложный). Моя задача - убедиться, что пользователи могут вводить только даты в текущем месяце. (лучше?)

Я понятия не имею, как это сделать. Должен ли я использовать элементы управления asp или делать это на задней панели?

Я использую VB.NET.

+0

Необходимо указать немного кода. Вам нужна проверка на стороне клиента (javascript) или на стороне сервера (vb.net)? – IvanH

+0

Иван, я так новичок, я даже не знаю ответа на этот вопрос, но я хотел бы показать какую-то инициативу? Что лучше вообще? – JettyJetty

+0

@IvanH - всегда должна быть проверка на стороне сервера, так как проверка на стороне клиента может быть обойдена (т. Е. Отключен JavaScript), но сервер всегда должен проверять все независимо от того, что. –

ответ

2

Используйте элементы управления ASP.NET Validator, например:

Markup:

<asp:TextBox id="YourTextBox" runat="server" /> 

<asp:RequiredFieldValidator ControlToValidate="YourTextBox" 
    Text="The date field is required!" runat="server" /> 
<asp:CompareValidator ID="compareValidatorDate" ControlToValidate="YourTextBox" 
    Type="Date" Operator="LessThan" ErrorMessage="Date must be from this month!" 
    Display="Dynamic" runat="server" /> 

Примечание: Я включил RequireFieldValidator, чтобы гарантировать, что мы имеем значение для сравнения для проверки даты.

код-за (Page_Load):

If Not IsPostBack Then 
    Dim firstOfTheMonthDate As DateTime = FirstDayOfMonthFromDateTime(DateTime.Now) 
    Me.compareValidatorDate.ValueToCompare = firstOfTheMonthDate.ToString("d") 
End If 

Code-за (функция полезности):

Public Function FirstDayOfMonthFromDateTime(dateTime As DateTime) As DateTime 
    Return New DateTime(dateTime.Year, dateTime.Month, 1) 
End Function 

Примечание: Я включил функцию, чтобы определить дату первого дня текущего месяц. Page_Load вызывает эту функцию, а затем передает ее валидатору в качестве значения для сравнения меньше.

+0

Это потрясающе спасибо. Я могу принять это и ввести то, что нужно, но я все равно отправлю код, который я работаю с – JettyJetty

+0

@JettyJetty - отлично, рад, что он вам полезен. Не стесняйтесь также проголосовать за мой ответ, когда сможете. :-) –

+0

Я знаю правильно! Я просто немного больше репутации, и я получил тебя, сэр. – JettyJetty

Смежные вопросы