Es lógico que pase eso ya que cada refresh que se hace se pierden los datos.
Para solucionarlo lo que tienes que hacer es guardar el dataview en una variable de sesión para que no se te pierdan los datos.
Código vb.net:
Ver originalDim view As DataView = obj.Productos
Session("view") = view
Y para recuperar los datos arias.
Código vb.net:
Ver originalDim dv As DataView = TryCast(Session("view"), DataView)
Saving a DataView in Session