AjaxControlToolkit:пробл.с динамич.добавл.контрола
От: Vitguard  
Дата: 28.05.08 11:47
Оценка:
Добрый день.
Помогите, пожалуйста, со следующим:

у меня есть форма. Ней администрируются ряд параметров.
и, для каждого параметра, задается еще и пользователь, который может работать с некой функциональностью и дата, до которой он может работать с этой функциональностью

пользователь выбирается из DropDownList-а, ExpiredDate выбирается с помощью ajaxToolkit:CalendarExtender
было всё красиво и удобно.
но, попросили о следующем: очень неудобно, когда для некоей функциональности нужно добавить несколько пользователей и с разными ExpiredDate, а страница уходит на сервер, потом обратно и т.д и т. п. Попросили сделать кнопку "Add user" при нажатии на которую, без отправки страницы на сервер, под существующим дропдауном и ajaxToolkit:CalendarExtender появится еще один дропдаун со списоком пользователем, и еще один ajaxToolkit:CalendarExtender
если еще раз нажали кнопку Add user, то появится еще один дропдаун и еще один ajaxToolkit:CalendarExtender...

в чем у меня затруднения: как проклонировать дропдаун средствами Javascript, в принципе понятно, но что делать с этим вот ajaxToolkit:CalendarExtender.... Как его проклонировать....

Подскажите, пожалуйста, решение на джаваскрипт, либо, может в состав самого AjaxToolkit входит такая функциональность?....

заранее. БОЛЬШОЕ СПАСиБО!
Re: AjaxControlToolkit:пробл.с динамич.добавл.контрола
От: eos  
Дата: 28.05.08 13:49
Оценка: 3 (1)
Здравствуйте, Vitguard, Вы писали:

V> Добрый день.

V>Помогите, пожалуйста, со следующим:

...

V>Подскажите, пожалуйста, решение на джаваскрипт, либо, может в состав самого AjaxToolkit входит такая функциональность?....


V>заранее. БОЛЬШОЕ СПАСиБО!



function AddUserButtonClick()
{
  // Создаешь DropDownList
  
  // Создаешь input type=text id=DateN , где N - это порядковый номер пользователя

  var MyCalendar = new AjaxControlToolkit.CalendarBehavior($get('DateN'));
  
  // Устанавливаешь необходимые свойства календаря

  MyCalendar.initialize();
}
Re[2]: AjaxControlToolkit:пробл.с динамич.добавл.контрола
От: Vitguard  
Дата: 28.05.08 19:43
Оценка:
Спасибо!
Это сработало!
но, в "статичных" контролах там рядом была картинка. При клике на неё появлялся календарь. после того, как в календаре выбиралась дата, она появлялась в соответствующем текстбоксе.
Сейчас в Вашем способе только при клике на текстбокс появляется поп-ап календарь
я дописал код, динамического добавления imageButton
к сожалению, простая установка свойства
var MyCalendar = new AjaxControlToolkit.CalendarBehavior($get('DateN'));
MyCalendar.PopupButtonID="imgShowCalendatDateN";
MyCalendar.initialize();
не помогла...
помогите. пожалуйста...

Здравствуйте, eos, Вы писали:

eos>Здравствуйте, Vitguard, Вы писали:


V>> Добрый день.

V>>Помогите, пожалуйста, со следующим:

eos>...


V>>Подскажите, пожалуйста, решение на джаваскрипт, либо, может в состав самого AjaxToolkit входит такая функциональность?....


V>>заранее. БОЛЬШОЕ СПАСиБО!



eos>
eos>function AddUserButtonClick()
eos>{
eos>  // Создаешь DropDownList
  
eos>  // Создаешь input type=text id=DateN , где N - это порядковый номер пользователя

eos>  var MyCalendar = new AjaxControlToolkit.CalendarBehavior($get('DateN'));
  
eos>  // Устанавливаешь необходимые свойства календаря

eos>  MyCalendar.initialize();
eos>}
eos>
Re[3]: AjaxControlToolkit:пробл.с динамич.добавл.контрола
От: eos  
Дата: 29.05.08 06:40
Оценка:
Здравствуйте, Vitguard, Вы писали:

V> Спасибо!

V>Это сработало!
V>но, в "статичных" контролах там рядом была картинка. При клике на неё появлялся календарь. после того, как в календаре выбиралась дата, она появлялась в соответствующем текстбоксе.
V> Сейчас в Вашем способе только при клике на текстбокс появляется поп-ап календарь
V>я дописал код, динамического добавления imageButton
V>к сожалению, простая установка свойства
V>var MyCalendar = new AjaxControlToolkit.CalendarBehavior($get('DateN'));
V>MyCalendar.PopupButtonID="imgShowCalendatDateN";
V>MyCalendar.initialize();
V>не помогла...
V>помогите. пожалуйста...

Для этого используется функция set_button:

...
MyCalendar.set_button($get('<ID кнопки>'));
...


Хотя для Вашей конкретной задачи я бы рассмотрел немного другой вариант решения:
— Создать UserControl содержащий всё необходимое (DropDownList и календарь).
— Положить внутрь UpdatePanel таблицу, repeater или еще какой-нибудь контрол для отображения массива созданного контрола, AddUser назначить в качестве триггера.
— На серверной стороне вести List необходимых данных и динамически рисовать необходимое количество юзеров и дат.

На мой взгляд, данный вариант получится проще.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.