2008-10-24 5 views
0

Я только начинаю со всей вещи ajax, и мне нужна помощь. У меня есть форма, в которой пользователи смогут добавлять в запись несколько адресов электронной почты. Когда пользователь нажимает на добавление нового адреса электронной почты, я собираюсь выполнить вызов ajax, который будет вставлять адрес электронной почты, а затем отображать текущие электронные письма для редактирования. Звучит неплохо, но единственная проблема, с которой я сталкиваюсь, - это когда форма отправляется, я хочу иметь доступ к этим значениям на стороне сервера, а также хранить порядковые номера из db, чтобы электронные письма могли быть обновлены в окончательном submit. В повторителе я бы сохранил номер последовательности в скрытом поле, а затем прокрутил элементы, но я не могу этого сделать, когда я не использую ретранслятор. Я бы хотел избежать использования панели обновления из-за большого сетевого трафика. Я полагаю, я мог бы использовать коллекцию request.forms, но как бы сохранить порядковые номера таким образом, чтобы пользователи не могли их видеть? Неужели я полностью оторван от базы?, глядя на элементы управления клиента на сервере

ответ

0

Почему бы вам не использовать скрытые поля? Пока они находятся внутри элемента form, неважно, где они находятся, не так ли?

Скажем, например, что ваши поля сообщения электронной почты имеют name набор атрибутов, как «EMAIL_1», «EMAIL_2» и т.д. Вы можете установить name для ваших скрытых полей, таких как «seq_email_1», «seq_email_2» ...

и тогда вы можете перебирать Request.Form и читать электронную почту и порядковые номера:

foreach (string key in Request.Form.AllKeys) { 
    if (key.StartsWith("email_")) { 
     string email = Request.Form[key]; 
     int seq = int.Parse(Request.Form["seq_" + key]); 

     // process email with seq number 
    } 
} 
+0

Я собираюсь поставить Seq1, sEQ2 и т.д. в начале, а не в конце моих имен полей, так что записи электронной почты обрабатываются только один раз и во избежание принятия. То, как вы это делаете, ваше, если будет работать как для электронной почты, так и для ключа. – 2008-10-24 02:29:36

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