У меня есть веб-сайт ASP.NET с чем-то подобным следующему коду:значение Keep после постбэка
.aspx
функции<asp:UpdatePanel ID="UpdatePanel" runat="server">
<ContentTemplate>
<table id="RatesTable">
<tr>
<td>Hotel</td>
<td> </td>
</tr>
<tr id="NewRateRow">
<td>
<asp:DropDownList ID="TxtHotel" runat="server" OnSelectedIndexChanged="TxtHotel_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
</td>
<td>
<a href="javascript:AddHotelPackRate()">Add</a>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
AddHotelPackRate JS, считывает значение в выпадающем списке и " рисует "новую строку в начале таблицы, содержащую это значение. Проблема в том, что после этого, когда функция SelectIndexChanged выполняется снова, строка, добавленная до этого, теперь исчезает.
Есть ли способ избежать потери этого типа информации после обратной передачи?
Вы должны добавить его снова (воссоздать) после обратной передачи, так что вы можете сохранить информацию, необходимую, чтобы воссоздать его в скрытом поле и читать эту информацию после того, как постбэк воссоздать дополнительный ряд , Однако возникает вопрос, действительно ли вам нужна обратная передача после изменения элемента, выбранного в раскрывающемся списке? Таким образом, это может быть более интуитивно понятным для пользователя, и вы могли бы избежать этой проблемы. –
@ Лукас Мне нужна обратная передача, чтобы получить некоторую информацию из выбранного значения. Я подумал о том, чтобы сохранить информацию в скрытом поле, а затем воссоздать строки, проблема в том, что это не только одна ячейка, как в приведенном выше примере, а, в конце концов, будет сотни строк, и я определенно не хочу получать доступ к db после добавления каждой строки. Но я думаю, что другого решения нет. – Gonzalo