2010-11-17 4 views
0

Пользователь выбирает дату с даты выбора и дата помещается в текстовое поле.Событие смены изменения не запускается (триггер)

Но когда я выбираю дату, какая-то дата должна проверять дату другого текстового поля и давать мне разницу. Событие смены выбора не срабатывает (как и ожидалось).

protected void dtpleavestartdate_SelectionChanged(object sender, EventArgs e) 
{ 
    string a = "NO CHANGE"; 
    a = a + dtpenddate.SelectedDate.Subtract(dtpleavestartdate.SelectedDate).ToString(); 
    Response.Write("<script>alert('" + a +"')</script>"); 
} 

ответ

1

Какой контроль над выборами вы используете? Из вашего кода кажется, что вы используете обработку событий на стороне сервера, поэтому любой элемент управления, который вы используете, должен обеспечивать событие на стороне сервера. Кроме того, он должен иметь некоторый режим, чтобы указать, что сообщение будет происходить при выборе (например, свойство AutoPostBack в выпадающем списке) - без обратной связи не произойдет никакого события на стороне сервера.

Я также предлагаю вам рассмотреть логику клиентской стороны (если возможно) для вашего сценария.

+0

я использовать полную сторону сервера кодирование. даже проверка выполняется на стороне сервера, а не на клиенте. –

+0

Так ли сообщение страницы после выбора даты? Если нет, то ваше событие на стороне сервера не будет немедленно запускаться. – VinayC

1

Вы должны убедиться, что:

  • На странице свойств перейдите на вкладку событий и проверьте, если в случае SelectionChanged это указать обработчик событий (в вашем случае dtpleavestartdate_SelectionChanged)

  • проверки, если дата, отправленная после обратной передачи страницы, отличается от даты по умолчанию управления (возможно, той, которую вы установили на загрузке страницы, если она не является page.postback). Если они не отличаются, событие не собирается подниматься.

-check если AutoPostBack свойство установлено в Истинный