У меня есть ASP-страница, которая использует два списка и сторонний элемент управления (Fluent.ListTransfer) для передачи значений из одного списка в другой. Довольно стандартный материал:
<td>
<asp:ListBox ID="ListBoxAvailable" Runat="server"
SelectionMode="Multiple" EnableViewState="true">
</asp:ListBox>
</td>
<td style="vertical-align: middle">
<a href="#" onclick="<%= ListTransfer1.ClientMoveSelected %>" ><img src="img/RightArrow.jpg" alt=">>"/></a>
<br />
<a href="#" onclick="<%= ListTransfer1.ClientMoveBackSelected %>"><img src="img/LeftArrow.jpg" alt="<<"/></a>
</td>
<td>
<asp:ListBox ID="ListBoxSelected" Runat="server"
SelectionMode="Multiple" EnableViewState="true">
</asp:ListBox>
</td>
В событии Controls Page_load я установил содержимое полей 'available' и 'selected' с некоторыми sql:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
return;
// Some code to work through a recordset, adding values
// to the selected or available list boxes
Я предполагал, что на обратных передачах viewstate будет заботиться о состоянии списков, измененных пользователем (в конце концов, они являются стандартными элементами управления ASP). Тем не менее, оба списка остаются пустыми, если я выполняю обратную передачу.
Как правильно поддерживать состояние списков между постбэками?
Спасибо за любую помощь
Ryan