2012-02-23 11 views
3

asp.netのListBoxから選択した項目を削除する必要があります。私はWindowsフォームのサンプルを見つけるが、asp.netのサンプルは見つけ出していない。Asp.netから選択した項目を削除ListBox

私は、1つのリストボックスから別のリストボックスにすべてのアイテムをコピーするボタンクリックイベントがあります。 2番目のリストボックスから個々の項目を選択し、ボタンをクリックしてそれらを削除できるようにしたいと思います。

protected void btnAddAllProjects_Click(object sender, EventArgs e) 
{ 

    foreach (ListItem item in lstbxFromUserProjects.Items) 
    { 
     lstBoxToUserProjects.Items.Add(item.ToString()); 
    } 


} 

    protected void btnRemoveSelected_Click(object sender, EventArgs e) 
    {} 
+0

データはどのようにリストボックスにバインドされていますか?あなたはリストにバインドされたリストを持っていますか?コードを投稿してください –

答えて

13

あなただけの選択した項目をクリアしたい場合は、以下のコードを使用します。

 ListBox1.ClearSelection(); 

     //or 

     foreach (ListItem listItem in ListBox1.Items) 
     { 
      listItem.Selected = false; 
     } 

あなたが実際にアイテムを削除するものに意味ならば、これはあなたのためのコードですが..

 List<ListItem> itemsToRemove = new List<ListItem>(); 

     foreach (ListItem listItem in ListBox1.Items) 
     { 
      if (listItem.Selected) 
       itemsToRemove.Add(listItem); 
     } 

     foreach (ListItem listItem in itemsToRemove) 
     { 
      ListBox1.Items.Remove(listItem); 
     } 
+0

彼はハイライトを削除する方法ではなく、選択したアイテムを削除する方法を尋ねていると思います。 –

+0

@MattT - そうだと思った!感謝 – WraithNath

+0

私はこのエラーが発生しました 'System.Web.UI.WebControls.ListBox'には 'Selected'の定義が含まれず、 'System'タイプの最初の引数を受け入れる拡張メソッド 'Selected' .Web.UI.WebControls.ListBox 'が見つかりました(usingディレクティブまたはアセンブリ参照がありませんか?) –

-2
protected void ButtonRemoveSelectedItem_Click(object sender, EventArgs e) 
{ 
    int position = 0; 

    for (byte i = 0; i < ListBox2.Items.Count; i++) 
    { 
     position = ListBox2.SelectedIndex ; 
    } 

    ListBox2.Items.RemoveAt(position); 
} 
+2

こんにちは、スタックオーバーフローへようこそ!コードオンリーの回答は、一般的にコミュニティでは歓迎されません。なぜなら、読者は何が起こっているのかを把握する作業を残しているからです。どのように、なぜあなたのコードが動作するのか、いくつかの説明を提供してください。詳細については、[回答方法​​](http://stackoverflow.com/questions/how-to-answer)をご覧ください。 – Jesse

0

私はいくつかの実験と作品下記のテクニックを試してみました。非常に効率的ではありません。各反復でリストボックスを再クエリーしますが、ジョブが完了します。

 while (myListBox.SelectedIndex != -1) 
     { 
      ListItem mySelectedItem = (from ListItem li in myListBox.Items where li.Selected == true select li).First(); 
      myListBox.Items.Remove(mySelectedItem); 
     }; 
+0

VS2005で動作しません – Fandango68

-2
int a = txtbuklist.SelectedIndex; 
txtbuklist.Items.RemoveAt(a); 
0

なぜ単にItems.Removeを使用して、選択された項目の文字列値を渡しません。

ListBox1.Items.Remove(ListBox1.SelectedItem.ToString()); 
+0

複数の選択項目が存在する可能性があります。 – 182764125216

1

これを試して、選択した項目をリストボックスから削除してください。

protected void Remove_Click(object sender, EventArgs e) 
{ 
    while (ListBox.GetSelectedIndices().Length > 0) 
    { 
     ListBox.Items.Remove(ListBox.SelectedItem); 
    } 
} 
関連する問題