我有两个列表框,它们在运行时在网页 Page_Load 事件中填充。我正在使用 Page.IsPostBack 来确保仅在未回发时填充列表。
列表框 A 大约有 150 个项目,列表框 B 为空。我有两个按钮,添加和删除。我选择列表框 A 中的项目并按添加按钮,这些项目将移动到列表框 B。
我在列表框 B 中选择这些项目时遇到问题。如果我将 Autopostback 设置为 TRUE,我将无法选择任何项目。当我选择一个项目时,会发生回发并且我的选择被清除,就好像没有选择任何项目一样,即使我将 Enableviewstate 设置为 TRUE。
如果我将 Autopostback 设置为 FALSE,我可以毫无问题地选择项目,但是当我在服务器端检查这些项目的 Selected 属性时,它们都是 FALSE。
无论自动回发设置为什么,我都可以在服务器端看到填充的项目,只有 selected 属性始终为 false。
所有列表框项目及其值都是唯一的。
有关解决此问题的任何建议?
这是我用来在添加按钮的单击事件中填充列表框 b 的代码:
For i = 0 To (ListboxA.Items.Count - 1)
If ListboxA.Items.Item(i).Selected = True Then
ListboxB.Items.Add(ListboxA.Items.Item(i))
End If
Next
For i = 0 To (ListboxB.Items.Count - 1)
If ListboxA.Items.Contains(ListboxB.Items.Item(i)) Then
ListboxA.Items.Remove(ListboxB.Items.Item(i))
End If
ListboxB.Items.Item(i).Selected = False
Next
和列表框:
<asp:ListBox ID="ListboxA" runat="server" SelectionMode="Multiple" AutoPostBack="True"></asp:ListBox>
<asp:ListBox ID="ListboxB" runat="server" SelectionMode="Multiple" AutoPostBack="True"></asp:ListBox>