2010-06-05 7 views
0

Я создал usercontrol для получения информации об образовании, он содержит 5 текстовых полей и функцию для вставки этих значений в мой db. Я добавил usercontrol 5 раз на страницу. У меня есть кнопка на моей странице aspx, которую я хочу, чтобы щелкнуть и вызвать функцию, чтобы вставить значения.Функция триггера внутри usercontrol со страницы

Может ли кто-нибудь предложить, как я могу это сделать?

ответ

0

Поместите метод public на свой пользовательский контроль.

// Inside MyUserControl 
public void SaveIt() { 
    // logic to perist the values to db. 
} 

С вашей страницы ASPX (или код позади), когда кнопка нажата, петля над экземплярам пользовательского элемента управления и вызвать метод:

// On Click... 

MyUserControl[] arrControls = new MyUserControl[] {myUC1, myUC2, myUC3, myUC4, myUC5}; 
foreach (MyUserControl c in arrControls) 
    c.SaveIt(); 
+0

Пользовательский элемент управления относится к представлению, доступ к данным должен быть разделен в модели (или, по крайней мере, на контроллере = странице). В противном случае, по моему мнению, пользовательский контроль не может быть очень многоразовым. –

+1

Спасибо jdk. Никогда не думал, что это так просто :) –

+0

@ diver-d: Действительно! Несмотря на то, что они являются пользовательскими/визуальными элементами управления, они также являются чистыми .NET-классами, поэтому одни и те же функции OO, такие как инкапсуляция, модификаторы доступа и ссылки, могут использоваться для отправки сообщений туда и обратно между ними, как обычные объекты. –

1

Функция, которая вставляет значения в ваш db, не должна находиться в вашем usercontrols, а на вашей странице. У вашего пользовательского контроля есть сама кнопка сохранения или только страница? В первом варианте вы должны поднятьсобытия и страницу мог поймать это, чтобы сохранить значение. Во втором варианте вы должны повторить через ваш usercontrols (добавлен динамически или исправлен?). Вы должны добавить общедоступные свойства, которые возвращают значения текстового поля на страницу, затем вы можете сохранить эти значения в db.

+0

Привет Тим, Нет у меня только одну кнопку для представить вставку. Итак, должны ли я иметь общедоступные свойства, выполняющие набор значений в значениях текстового поля? не уверен, что то, что вы имели в виду. Каковы преимущества использования метода вставки на странице? –

+0

Назначение пользователя Usercontrol - показать пользователя и ввести его в текст. Вы можете повторно использовать этот элемент управления на нескольких страницах при простом проектировании. Чем более специализированным является контроль, тем он будет более невыносимым. Доступ к данным принадлежит модели, а не к представлению. Таким образом, вы можете изменить модель без изменения своих пользовательских элементов управления. Или вы можете использовать модель в разных приложениях (приложениях Windows, веб-сервисах и т. Д.) Без необходимости извлекать функциональные возможности доступа к данным из ваших элементов управления, которые принадлежат только asp.net. –

+0

У меня была бы функция сохранения на странице, итерация через usercontrols и получение их значений из общедоступных свойств (внутренняя ссылка на свойство textboxes'-Text) и сохранение их в базе данных (или лучше использовать класс модели или проект для обработки доступа к данным централизованная). –

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