0

画像がdatalist含まれています。

datalistデータベースから画像名を取得して、これらの画像をバインドしました。

srcユーザーがデータリストをクリックした[画像のパス]を取得したいだけです。

私のデータリストは次のとおりです。

    <asp:DataList ID="dlImages" runat="server" RepeatColumns="4">
        <ItemTemplate>
           <asp:ImageButton ID="ImageButton1" Height="200px" Width="200px"  runat="server" />
        </ItemTemplate>
    </asp:DataList>

そして、私は次のようにそれを制限しました:

   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

ユーザーがデータソースをクリックした特定の画像のsrcを取得するのを手伝ってください。

4

1 に答える 1

1

私はこれに行きます:

Protected Sub ImageButton1_Click(sender As Object, e As ImageClickEventArgs)
    Dim btn As ImageButton = sender
    Dim selImage As String = btn.ImageUrl.ToString
    MsgBox(btn.ImageUrl.ToString)
    'Shorter:
    Dim selImage As String = sender.ImageUrl.ToString
End Sub

テスト用の完全なコード:

Public Class WebForm1
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim ditems As New List(Of di)
        For i As Integer = 0 To 10
            Dim dii As New di
            dii.d_Name = "x" & i
            ditems.Add(dii)
        Next
        dlImages.DataSource = ditems
        dlImages.DataBind()
    End If
End Sub

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/" & DirectCast(e.Item.DataItem, di).d_Name & ".jpg"
    End If
End Sub


Protected Sub ImageButton1_Click(sender As Object, e As ImageClickEventArgs)
    Dim btn As ImageButton = sender
    Dim selImage As String = btn.ImageUrl.ToString
    MsgBox(btn.ImageUrl.ToString)
End Sub

クラス終了

Public Class di

Public Property d_Name() As String
    Get
        Return m_d_Name
    End Get
    Set(value As String)
        m_d_Name = value
    End Set
End Property
Private m_d_Name As String

クラス終了

そしてasp:

<asp:DataList ID="dlImages" runat="server" DataKeyField="d_Name" DataMember="d_Name"  RepeatColumns="4">
    <ItemTemplate>
       <asp:ImageButton ID="ImageButton1" OnClick="ImageButton1_Click" Height="200px" Width="200px"  runat="server" />
    </ItemTemplate>
</asp:DataList>
于 2013-08-22T09:01:39.010 に答える