点击datalist中的图像获取图像名称

时间:2013-07-19 06:00:14

标签: c# asp.net .net vb.net visual-studio-2008

(使用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

为了在datalist中获取标签文本的值,在点击datalist中的图像后,我尝试了以下内容:

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

不幸的是,这个事件没有被解雇,而且我没有在点击数据源中的imagebutton时获得图像名称。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

问题出现了,因为datalist在每个页面加载时都是新绑定的。

我在pageload上添加了条件,我绑定了我的datalist。

If Not Page.IsPostback Then

...Code for binding datalist.......

End IF