2012-06-14 50 views
0

我遇到了列表視圖問題。ItemDataBound在刪除命令上調用兩次

Im做,當單擊在ListView刪除按鈕:(代碼簡化,它刪除,因爲它應該)

Protected Sub rlvCarts_ItemCommand(sender As Object, e As RadListViewCommandEventArgs) 
     If e.CommandName = RadListView.DeleteCommandName Then 
          mylistItem.items.RemoveAt(e.CommandArgument.ToString)      
      BindData()    
     End If 
End Sub 

Protected Sub BindData() 
    rlvCarts.DataSource = mylistItem.items 
    rlvCarts.DataBind() 
End Sub 

deleteting它將執行的ItemDataBound兩次當問題涉及(但列表視圖預渲染一次)。

它是怎麼來的?我怎樣才能避免這種情況?

+0

這種混淆的名稱是導致錯誤。在正確的點使用IsPostBack來避免這兩次調用。 – Aristos

+0

你可能會調用頁面加載BindData()也沒有適用!ispostback – Rab

+0

我測試回發,因爲它應該(旁邊的列表視圖prerender被調用一次) – blop

回答

0

解決:我不得不添加e.Canceled = True

Protected Sub rlvCarts_ItemCommand(sender As Object, e As RadListViewCommandEventArgs) 
     If e.CommandName = RadListView.DeleteCommandName Then 
          mylistItem.items.RemoveAt(e.CommandArgument.ToString) 
      e.Canceled = True  
      BindData()    
     End If 
End Sub 

它可以防止「自動重新綁定」當命令被稱爲