2012-06-15 3 views
0

У одного есть txtDateReceived, а у второго есть txtVendorPackDate. Перед вставкой добавьте запись, которую я должен проверить, если txtDateReceived не ранее, чем txtVendorPackDate. Я пытаюсь использовать событие TextChanged.Как проверить два текстовых поля для двух дат

protected void txtVendorPackDate_TextChanged(object sender, EventArgs e) 
{ 
    DateTime fromDate = DateTime.MinValue; 
    DateTime toDate = DateTime.MaxValue; 
    bool parseResultMin = DateTime.TryParse(txtVendorPackDate.Text, out fromDate); 
    bool parseResultMax = DateTime.TryParse(txtDateReceived.Text, out toDate); 
    if (toDate < fromDate) 
    { 
     txtVendorPackDate.Text = ""; 
     lblDateExpired.Visible = true; 
     lblDateExpired.Text = "Selected date is incorrect, please enter correct data."; 
     txtVendorFatPerc.Focus(); 
    } 

    double expired = toDate.Subtract(fromDate).TotalDays; 

    if (expired >= 60) 
    { 

     lblDateExpired.Text = "Date Expired " + expired + " days after pack day!!!" 
     lblDateExpired.Visible = true; 
    } 
} 

Как я мог это сделать с клиентской стороны, не используя проверку элементов управления.

+0

И в чем проблема? – comecme

+0

FYI, 'fromDate' и' toDate' не нужно назначать значения изначально. Вы можете удалить DateTime.MinValue и DateTime.MaxValue. –

+0

Спасибо Грант, что вы правы. Мне не нужны значения min и max. – laspalmos

ответ

1

Попробуйте

if (!parseResultMin || !parseResultMax || toDate < fromDate) 

В вашем коде, если обе даты являются недействительными, toDate и fromDate оба будут DateTime.MinValue, так что выражение toDate < fromDate не будет правдой.

+0

Спасибо, comecme. Я не видел этого – laspalmos

0

Вы можете использовать элемент управления CompareValidator, чтобы проверить, что дата пакета поставщика меньше принятой даты. Если оба поля необходимы, вы также можете использовать RequiredFieldValidator. Я бы использовал комбинацию RequiredFieldValidators и CompareValidators.

One RequiredFieldValidator для каждого текстового поля, чтобы убедиться, что пользователь вводит значение. Один CompareValidator для каждого текстового поля, чтобы убедиться, что введенное значение является типом даты. Один CompareValidator, чтобы убедиться, что дата пакета поставщика установлена ​​раньше, чем полученная дата.

+0

Я не могу использовать этот solutin b/c. У меня также есть gridview, где я разрешаю строки обновления. Когда я делаю сравнение с контролем, он не будет обновлять контроль сетки. – laspalmos

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