2015-02-05 5 views
0

У меня есть страница aspx.net с двумя текстовыми полями asp и двумя входными элементами.ASP Textbox хранит данные, элемент ввода очищен

<asp:TextBox class="input1" ID="TextBoxAirportPkup" placeholder="Enter Flight Number" runat="server"></asp:TextBox>... 
<asp:TextBox class="input1 " ID="TextBoxAirportName" placeholder="Airport" runat="server" />... 
<input id="airPickupdateInput" class="timepicker datepicker" placeholder="Pickup Date" type="text" /> 
<input type="text" id="airPickuptimeInput" class="timepicker" placeholder="Pickup Time" /> 

При нажатии на кнопку несвязанной и запустить код-позади, текст в элементах TextBox сохраняется, но текст во входных элементов очищается. Page_Load вызывается с IsPostback == true, но в этом случае я не запускаю код. Почему это происходит, и как я могу это предотвратить?

ответ

1

Добавить runat = "server", а серверная сторона может видеть входные элементы.

+0

ASP.NET состояние просмотр Обзор https://msdn.microsoft.com/en-us/library/bb386448(v=vs.140).aspx – bdimag

0

Два текстовых поля сохраняют свое состояние из-за того, что они являются элементами управления сервером, и поэтому они имеют доступ к состоянию просмотра страниц, которое предназначено для сохранения состояния через обратную передачу.

Два элемента управления ввода - это элементы управления html, они не имеют доступа к виду просмотра и, следовательно, не репопулируются после обратной передачи (что происходит подобно обновлению страницы).

Чтобы сохранить состояние этих входов после обратной передачи, вам необходимо либо установить серверные элементы управления, либо использовать скрытый контроль и использовать javascript для записи значения из скрытого элемента управления обратно на входы, если они не могут быть сервером по какой-либо причине.

Также можно использовать Ajax для отправки других действий или форм, не вызывая обратной передачи всей страницы, и поэтому необходимо обновить все данные на странице. Это потребует некоторой реструктуризации вашего приложения.

для получения дополнительной информации о состоянии представления см https://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic3