ItemDataBound Вызывается дважды при команде удаления

У меня проблема со списком.

Я делаю это, когда в списке нажимается кнопка удаления: (код упрощен, он удаляется как следует)

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

Проблема возникает, когда при удалении он дважды выполняет привязку к данным элемента (но один раз предварительно обрабатывает список).

Как это происходит? Как я могу этого избежать?


person blop    schedule 14.06.2012    source источник
comment
Это смешивание имен приводит к ошибкам. Используйте IsPostBack в правильной точке, чтобы избежать этого двойного вызова.   -  person Aristos    schedule 14.06.2012
comment
вы также можете вызывать BindData() при загрузке страницы без применения !ispostback   -  person Raab    schedule 14.06.2012
comment
Я тестирую обратную передачу, как и должно (кроме того, что пререндеринг списка вызывается один раз)   -  person blop    schedule 14.06.2012


Ответы (1)


Решено: мне пришлось добавить 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

Предотвращает "автоматическое повторное связывание" при вызове команды.

person blop    schedule 14.06.2012