(VB.NETを使用していますが、C#で解決策を見つけることができれば、VB.NETで変換することもできます)
複数の画像を含むデータリストと、画像の名前を含むラベルがあります。
特定の画像をクリックすると、ラベルのテキスト(つまり、画像の名前)を取得したかったのです。
私のデータリスト:
<asp:DataList ID="dlImages" runat="server" RepeatColumns="4">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" Height="200px" Width="200px" runat="server" CommandName="imgClick" ImageUrl='<%# Eval("PageName") %>' />
<asp:Label ID="lblImageName" runat ="server" Text='<%# Eval("PageName") %>'></asp:Label>
</ItemTemplate>
</asp:DataList>
データソースをバインドするための .cs コード:
Protected Sub dlImages_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlImages.ItemDataBound
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.EditItem Then
CType(e.Item.FindControl("ImageButton1"), ImageButton).ImageUrl = "~/ScreenMasterImages/" & e.Item.DataItem("PageName") & ".jpg"
End If
End Sub
データリスト内の画像をクリックすると、データリスト内のラベルのテキストの値を取得するために、次のことを試しました:
Protected Sub dlImages_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlImages.ItemCommand
If e.CommandName = "imgClick" Then
imgURL = TryCast(e.Item.FindControl("lblImageName"), Label).Text
'((Label)e.Item.FindControl("lblImgName")).Text;'
'Response.Redirect("dailydealsdetail.aspx?imgurl=" + imgURL);
End If
End Sub
残念ながら、このイベントは発生せず、データソース内のイメージボタンをクリックしてもイメージの名前を取得できません。
私を助けてください。