如何在服务器上获取DataList的ItemTemplate项Url

时间:2013-08-15 03:46:46

标签: c# asp.net datalist

我使用的是Asp.Net C#4.0。我在包含ImageButton的页面上使用DataList。代码如下;

<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>

我想将ImageButton中的当前ImageUrl发送到代码隐藏的服务器上的方法“ImageButton1_Click”。我试过多次更改我的代码但无法修复它。使用此代码,我目前收到“预期方法名称”的错误。我在服务器上的方法是;

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

简而言之,我想将DataList中的图像的Url发送到服务器进行一些处理。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

尝试以下

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

并将方法更改为

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

}