2012-11-27 167 views
1
IList<object> itemsSelected = MyGrid.SelectedItems; 

foreach (object itemSelected in itemsSelected) 
{ 
    MyGrid.SelectedItems.Remove(itemSelected); 
} 

我嘗試從GridView中刪除所選項目,但並非所有選定項目都被刪除。 有人可以幫我嗎?刪除GridView中的選定項目

+0

這哪裏是一塊在頁面生命週期內聲明的代碼? 'OnLoad','OnInit' ...? –

+0

這是一個按鈕的應用程序欄的動作,刪除選定的項目。 – CodeSculptor

+0

[GridView](http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.aspx)似乎沒有'SelectedItems'屬性。 「SelectedItems」是否爲擴展名? –

回答

3
object[] itemsSelected = MyGrid.SelectedItems.ToArray<object>(); 
     foreach (object item in itemsSelected) 
     { 
      MyGrid.Items.Remove(item); 
     } 
0

有沒有例外,當您使用SelectedItems的foreach?當你刪除項目時,SelectedItems數組被修改,並且foreach引發一個異常。 (雖然我試過在ListBox控件上)。嘗試使用for-operator並通過索引從最後到第一個刪除項目。

+0

沒有例外。有些項目被刪除..但其他人仍然在選中。 – CodeSculptor

+0

這就像我需要實現Java中使用的Iterator。 – CodeSculptor

0

根據您在評論中的回答,我假設您正在開發C#winforms應用程序。

是否有可能您實際使用的是ListBox而不是 a GridView

如果是這樣,您應該使用ClearSelected()方法,該方法取消選擇ListBox中的所有項目。

+0

Metro風格的應用程序。 – CodeSculptor

1

我的確有問題。我寫了這樣的事情,但它並沒有刪除所有項目也只是其中的一部分:

foreach(var item in MyGridView.SelectedItems) 
{ 
    MyGridView.Items.Remove(item); 
} 

但是寫這將刪除所有選定的項目肯定的:

while (YourGridView.SelectedItems.Count != 0) 
{ 
    YourGridView.Items.Remove(YouGridView.SelectedItem); 
}