Web ページの Page_Load イベントで実行時に入力される 2 つのリストボックスがあります。私は Page.IsPostBack を使用して、ポストバックでない場合にのみリストが作成されるようにしています。
リストボックス A には約 150 個の項目があり、リストボックス B は空です。Add と Remove の 2 つのボタンがあります。リストボックス A の項目を選択して [追加] ボタンを押すと、それらの項目がリストボックス B に移動されます。
リストボックス B でこれらのアイテムを選択するのに問題があります。Autopostback を TRUE に設定すると、アイテムを選択できません。アイテムを 1 つ選択するとポストバックが発生し、Enableviewstate を TRUE に設定しても、アイテムが選択されていないかのように選択がクリアされます。
Autopostback を FALSE に設定すると、問題なくアイテムを選択できますが、サーバー側でこれらのアイテムの Selected プロパティを確認すると、すべて FALSE です。
自動ポストバックがどのように設定されていても、サーバー側で入力されたアイテムを確認できます。選択されたプロパティのみが常に 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>