2012-04-14 3 views
0

У меня есть пользовательский элемент управления, который содержит три dropdownlists: для дня, месяца и года. Это своего рода дампикер. У этого есть частное полеASP.NET - Пользовательский контроль внесенных изменений изменений на каждой странице

private bool _isValidDate = false; 

На выпадающих листах первые предметы - «День», «Месяц» и «Год». На SelectedIndexChanged случае проверить, если все выбранные индексы больше 0, и если это правда, я пытаюсь создать новый объект DateTime со значениями DropDownLists, как например:

try 
{ 
    DateTime date=new DateTime(int.Parse(ddlYear.SelectedItem), 
           ddlMonth.SelectedIndex, 
           ddlDay.SelectedIndex); 
    _isValidDate=true; 
} 
catch {_isValidDate=false;} 

В форме, где я использую этот контроль перед тем я проверяю свойство IsValidDate, и если оно ложно, я предупреждаю пользователя. Проблема заключается в том, что я впервые установил правильную дату и нажимаю кнопку. Я не получаю никакого предупреждения, поскольку свойство IsValidDate имеет значение true, но если я нажму на него во второй раз, свойство IsValidDate вернется к false, и я получу предупреждение, хотя дата действительна. Я знаю, это потому, что каждый раз, когда страница загружает файл _isValiddate, установленный в элементе управления, возвращается к его значению по умолчанию - false. Как я могу справиться с этой проблемой?

ответ

1

Ваша собственность должна быть такой.

public Boolean IsValidDate 
{ 
    get 
    { 
     String CompleteDate = "YourYear" + "/" + "YourMonth" + "/" + "YourDay"; 
     DateTime Dt ; 
     if (DateTime.TryParse(CompleteDate, out Dt)) 
      return true; 
     return false; 
    } 
} 
Смежные вопросы