0

(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

残念ながら、このイベントは発生せず、データソース内のイメージボタンをクリックしてもイメージの名前を取得できません。

私を助けてください。

4

1 に答える 1

0

ページロードごとにデータリストが新たにバインドされたため、問題が発生していました。

データリストをバインドしたページロードに if 条件を追加しました。

If Not Page.IsPostback Then

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

End IF
于 2013-07-19T06:49:01.437 に答える