user2599269
user2599269

Reputation: 571

How to get DataList's ItemTemplate items Url on server

I am using Asp.Net C# 4.0. I am using DataList on a page which include ImageButton. The code is as follows;

<asp:DataList ID="DataList1" runat="server" DataSourceID="ObjectDataSource2" 
        DataKeyField="Pic_ID">
        <HeaderTemplate>
            Click Image to enlarge
        </HeaderTemplate>
        <ItemTemplate>
            <asp:ImageButton ID="ImageButton1" runat="server" Height="110px"
             ImageUrl='<%# Eval("Pic_Path") %>' Width="111px" 

                onclick="ImageButton1_Click(this.ToString())"/>

        </ItemTemplate>
    </asp:DataList>

I want to send the current ImageUrl in the ImageButton to a method "ImageButton1_Click" on server in code behind. I tried changing my code several times but could not fix it. With this code i am currently getting error which says "Method name expected". My method on server is;

protected void ImageButton1_Click(string Param)
{
    //Code here
}

Saying in short, I want to send the Url of the image in DataList to server for some processing. Thanks for any help.

Upvotes: 1

Views: 944

Answers (1)

Damith
Damith

Reputation: 63105

try below

<asp:ImageButton ID="ImageButton1" runat="server" Height="110px"
         ImageUrl='<%# Eval("Pic_Path") %>' Width="111px" 
            onclick="ImageButton1_Click"/>

and change method as

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
    var btn = sender as ImageButton;
    var url = btn.ImageUrl;

}

Upvotes: 2

Related Questions