2009-06-12 2 views
0

У моего ASP.NET WebForm есть место на нем, и пользовательские элементы управления динамически добавляются к нему. Элементы управления в основном содержат текстовые поля. Иногда есть два пользовательских элемента управления, иногда их десять. Все работает так, как ожидалось. Мой вопрос в том, как реализовать новую функцию.Копирование информации с одного динамически созданного пользовательского элемента управления на другой динамически созданный пользовательский элемент управления

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

Сначала это звучало легко ... Добавьте флажок к заполнителю для каждого пользовательского элемента управления, а затем напишите JavaScript, чтобы скопировать данные из первого элемента управления в дополнительный элемент управления. Затем я понял, что с помощью тех текстовых ящиков, которые находятся в пользовательском элементе управления, у меня действительно нет доступа для непосредственного изменения входов HTML.

Далее я начал думать о добавлении флажков, которые будут автоматически отправляться обратно, но как я могу динамически добавить флажок в placeholder, а затем придумать способ добавить обработчик событий в этот флажок и передать информацию необходимо прокрутить элементы управления и скопировать значения. Этот подход кажется слишком сложным с слишком большими накладными расходами для достижения моей цели.

Любые предложения?

+0

У вас есть JavaScript в качестве тега, но не упоминайте его в своем вопросе ... использует его из вопрос? –

+0

JavaScript является вполне приемлемым и, вероятно, предпочтительным. Я думаю, что тот факт, что текстовые поля находятся в пользовательском элементе управления, делает его немного громоздким для работы. – proudgeekdad

ответ

0

Вы упомянули, что, поскольку флажки находятся в пользовательском элементе управления, у вас нет доступа к ним.

Не могли бы вы предоставить идентификаторы ClientID, используя свойство пользовательского элемента управления, а затем работать с ними в javascript? Что-то вроде этого:

user_control { 
    int checkboxId { get { return checkbox.ClientId; } } 
} 

Если у вас есть больше кода, который был бы полезен ...

0

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

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

Поскольку все это было построено в коде, я просто выставил логическое свойство элемента управления пользователя с именем ShowCheckBox, которое переключило видимость этого флажка. Я установил значение true в первом, а false - во всех остальных. Таким образом, я знал, что событие может быть поднято только щелчком флажка первого пользовательского элемента управления. Затем в обработчике событий для флажка я обработал копирование с первого пользовательского элемента управления ко всем остальным. (Кстати, не забудьте установить AutoPostBack=true на этот флажок, или вы будете задаваться вопросом, почему мероприятие не стреляет.)

Javascript определенно обеспечит лучшее впечатление от пользователя, но это сработало для меня и не требовало мне нужно выяснить, как получить значения ClientId в javascript. (Хотя это именно то, что мне нужно сделать сейчас, вот как я наткнулся на этот вопрос. :-))

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

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