ImageUrl
needs to be a property, rather than a field, for example:
Public Property ImageUrl As String
Get
Return _imageUrl
End Get
Set(value As String)
_imageUrl = value
End Set
End Property
Private _imageUrl As String
If you want to be able to modify the property in code, and have it persisted across a PostBack, you should use ViewState to store its value, e.g.:
Public Property ImageUrl As String
Get
Return ViewState("imageUrl")
End Get
Set(value As String)
ViewState("imageUrl") = value
End Set
End Property