2012-04-09 2 views
0

Я создал пользовательский веб-элемент управления для выбора даты. Он состоит из 3 dropdownlists. В своем событии selectedIndexChanged я проверяю дату, подобную этой.Отправка обратной передачи программно

protected void SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddList = sender as DropDownList; 
    if (ddlDays.SelectedIndex > 0 && ddlMonths.SelectedIndex > 0 && ddlYears.SelectedIndex > 0) 
    { 
     int day = ddlDays.SelectedIndex; 
     int month = ddlMonths.SelectedIndex; 
     int year = int.Parse(ddlMonths.SelectedValue); 
     try 
     { 
      DateTime date = new DateTime(year, month, day); 
     } 
     catch 
     { 

      if (OnDateNotValid != null) 
       OnDateNotValid("Entered date is not valid"); 
      //Here I want to invoke PosBack on the page where I use this control 
     } 
    } 
} 

Я на самом деле получить текст предупреждения этикетки, чтобы изменить к описанию ошибки, но так как нет постбэка в виде этикетка не показывает. вот некоторые соображения: 1. Я поместил свойство AutoPostBack для dropdownlists в false, потому что перезагрузка страницы каждый раз после изменения itemindex является frasturating. 2. Я попытался надеть кнопку на элемент управления и вызвать его событие onbuttonclick, но это не сработало.

Теперь мне нужно отправить обратную ссылку на страницу, если мой элемент управления обнаружит, что дата недействительна.

P.S. Когда я помещаю точку прерывания в начало метода SelectedIndexChganged и изменяю индекс любого из dropdownlists, отладчик не останавливается на этой точке останова. Я присвоил этому методу все выпадающее событие SelectedIndexChanged.

+0

панели Используйте обновление для этого и положить Контрактное внутри UpdatePanel. –

+0

http://stackoverflow.com/questions/3591634/how-to-use-dopostback –

+0

До сих пор используются панели обновления? Я прекратил использовать эти годы назад, потому что они раздуты. Видели многие проекты, использующие эти медленные, и для меня, кажется, и «легкий» выход из разработки приложений стиля ajax. – mickyjtwin

ответ

1

и может через Javascript обратной передачи

использование __doPostback('ButtonRenderedId','');

, когда ур AutoPostBack = "истина" javascript:setTimeout('__doPostBack(\'DropDownList1\',\'\')', 0) вынесено в HTML.

означает косвенную обратную передачу страницы при каждом индексировании через javascript.

если ур autopostback является ложным u может сделать обратную передачу manully.

узнать больше нажмите ниже How to use __doPostBack()

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