2016-03-26 5 views
0

На моей веб-странице есть дополнительная контактная панель, в которой пользователь может добавлять текст ввода для любого контакта, например, сотового телефона или электронной почты, когда пользователь нажимает кнопку создания контакта, он вносит текст ввода с такими атрибутами, как уникальный идентификатор (например, txtrelat1) или runat="server" (на клиентской стороне, но на веб-странице есть входной текст с id="txtrelat0" по умолчанию), и когда пользователь нажимает кнопку отправки, вызывает метод register на стороне сервера по событию onserverclick, Основной вопрос: когда я использую form1.FindControl("txtrelat0"), он находит и я могу конвертировать это до HtmlInputText, но когда я хочу form1.FindControl("txtrelat1"), он не находит и не возвращает null? thank all allПочему метод findcontrol ("x") ASP.NET не может найти элемент управления HTML, созданный с помощью javascript runtime?

+0

Вы не можете найти элементы управления JavaScript через код позади. –

+1

Просто добавление атрибута 'runat =" server "' с клиентской стороны не означает, что его собирают. Если вы ищете опубликованные значения со стороны клиента, вы можете выкопать их из свойства 'Request.Forms' через атрибут' name' вашего текстового элемента. – mason

ответ

0

FindControl находит элементы управления сервером на странице или контроле, выполняемом в настоящее время. Он имеет дело только с элементами управления сервером. Код позади может по-прежнему читать значения, размещенные с добавленных вами входов. Вы можете позвонить по телефону Request.Form["x"].

Недостатком является то, что если вы добавите дополнительные элементы управления на страницу и затем сделаете обратную передачу, страница сервера не будет «запоминать» добавленные вами элементы. Они просто исчезнут после обратной передачи.

Смешивание этих типов поведения клиент/сервер с помощью веб-форм не является забавным. Возможно, вам будет проще сделать это со всеми элементами управления сервером. Просто установите Visible="false" или "true" в код вашего сервера в ответ на события сервера. Или вы можете сделать все это на клиенте, используя вызовы API.

Несмотря на то, что мне не нравятся такие веб-формы, когда мне приходится работать в проекте webforms, часто проще делать вещи с помощью веб-форм с помощью серверных элементов управления.

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

  • Нет связанных вопросов^_^