我编写了一段代码,用于检索一个人拥有的相册数量,然后在“相册”面板中动态创建相同数量的ImageButton。面板。
我已经为每个ImageButton提供了一个唯一的Id(来自sql server中Albums表的Grabs AlbumId),并希望能够识别用户点击的ImageButton(将myAlbum.ID存储在变量中,以及如何使用它在稍后的存储过程中检索属于该专辑的图片。)
spRetrieveAlbums示例代码:
SELECT AlbumId FROM dbo.Albums WHERE Id = @CurrentUserId;
SET @AlbumCount = @@ROWCOUNT;
Main.aspx.vb代码:
Connection.Open()
sqlReader = spRetrieveAlbums.ExecuteReader()
If sqlReader.HasRows() Then
Do While sqlReader.Read()
Dim myAlbum = New ImageButton
myAlbum.ID = sqlReader.GetInt32(0)
myAlbum.Visible = True
myAlbum.Width = 160
myAlbum.Height = 160
myAlbum.BorderStyle = BorderStyle.Solid
myAlbum.BorderColor = Drawing.Color.WhiteSmoke
myAlbum.BorderWidth = 1
AlbumsPanel.Controls.Add(myAlbum)
Loop
End If
sqlReader.Close()
AlbumCount = spRetrieveAlbums.Parameters("@AlbumCount").Value
Connection.Close()
AlbumCountSpan.InnerHtml = "Albums: " & AlbumCount
有人提到在代码中使用了一个addhandler,但我不能100%确定它们是如何工作的!有人可以指出我正确的方向并举一个例子吗?
答案 0 :(得分:0)
添加循环块:
AddHandler myAlbum.Click, AddressOf NameOfMethode
使用lambda: 或每次迭代分离metode
AddHandler myAlbum.Click, Sub() someAction
首先,您应该识别发件人。像:
Sub NameOfMethode(sender As Object, e As ImageClickEventArgs)
Label1.Text = Ctype(sender, ImageButton).ID
End Sub
但是在第二种方式中,您可以为每次迭代编写适当的函数。像:
AddHandler myAlbum.Click, Sub() Label1.Text = sqlReader(0)