Request.Form ("ListBox1.ClientID") ничего не возвращает - PullRequest
1 голос
/ 30 марта 2012
Request.Form("ListBox1.ClientID") 

ничего не возвращая в webcontentform и usercontrols. Но он отлично работает с обычной веб-формой.

Все dropdownslist и Listbox заполнены jquery. Таким образом, сервер не может получить выбранные значения, потому что они действительно не существуют в первую очередь в соответствии с сервером, но они существуют на стороне клиента. Затем я использую Request.Form, он прекрасно работает с обычным Webform, но ничего не возвращает, пока я использую его в webcontentpages или usercontrols.

Я действительно отстой с этой проблемой, любые идеи будут полезны.

Ответы [ 3 ]

7 голосов
/ 30 марта 2012

Попробуйте:

 Request.Form(ListBox1.UniqueID) 
0 голосов
/ 30 марта 2012

Чтобы получить доступ к значениям с помощью Request.Form, вам нужно найти их по имени элемента управления , а не по идентификатору элемента управления.Итак, сначала убедитесь, что идентификатор элемента управления и имя элемента управления при отображении на странице совпадают, если вы хотите иметь возможность Request.Form["SomeID"].Во-вторых, очень маловероятно, что фактический контрольный идентификатор в вашем случае равен "ListBox1.ClientID".Я думаю, что вы, вероятно, намеревались сделать Request.Form[ListBox1.ClientID] вместо этого.В-третьих, я советую ставить точку останова после публикации страницы и добавлять часы к Request.AllKeys, чтобы вы могли точно определить, какие имена ключей можно использовать для получения представленных значений.

0 голосов
/ 30 марта 2012

Если вы заполняете элементы за пределами ViewState, как вы сказали, сервер не узнает о них из-за этого.Вы можете взглянуть на этот вопрос для получения дополнительной информации:

Обновление ViewState JavaScript на стороне клиента в формах asp .net

Я использовал раздел скрытых элементов в моемПроекты с TextBoxes для хранения выбранных значений и кнопок, которые передают данные обратно на сервер с помощью вызова __doPostBack(); или $button.click();.

...