#asp.net #vb.net
#asp.net #vb.net
Вопрос:
У меня есть несколько элементов формы, которые я динамически создаю с помощью javascript, когда пользователь изменяет числовое значение в текстовом поле, заполняя innerHTML div следующим образом:
dfinnerhtml = dfinnerhtml "<div class='field'> ";
dfinnerhtml = dfinnerhtml "<textarea name='textbox1" suffix "' type='text' id='textbox1" suffix "' value='' rows='4' cols='20' class='field'></textarea> ";
dfinnerhtml = dfinnerhtml "</div> ";
Затем, в коде aspx.vb, когда пользователь нажимает кнопку Сохранить, я выполняю серию запросов, чтобы попытаться добавить значения, которые находятся в этих элементах формы, в строку SQL:
Dim DFTestValue1 As String
DFTestValue1 = Request("textbox" amp; c.ToString)
где c — счетчик цикла для числа созданных текстовых полей (упомянутое выше входное значение, которое запускает создание)
Проблема здесь в том, что этот код работает в Internet Explorer, но не в Firefox или Chrome. Значение Request() возвращает null, и ничего не сохраняется. Надеюсь, я объяснил это достаточно хорошо.
Комментарии:
1. Вы запускали ее в отладчике и останавливались на строке запроса, чтобы посмотреть, что доступно? Запрос — это гораздо больше, чем просто функция…
2. Структура проекта не позволяет мне использовать фактический отладчик, но я попытался использовать FindControl для доступа к тому же объекту, и ему не удается найти элемент управления или родительский элемент управления.
Ответ №1:
Вероятно, в этом сообщении есть ответ:
http://forums.asp.net/t/1235816.aspx
Попробуйте предыдущее свойство Page:
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox pTextBox = (TextBox)PreviousPage.FindControl("TextBox1");
Response.Write("Previous Page TextBox: " pTextBox.Text);
}
}
Ответ №2:
Для всех, кому интересно знать, проблема заключалась в том, что случайный тег закрыл div, который предшествовал тегу. Internet Explorer, похоже, не заботился и считал элементы за пределами этого пункта как часть формы.