如何在转发器中单击获取图像URL

时间:2013-09-04 17:15:13

标签: c# asp.net

我希望在转发器中单击数据库中的图像时获取图像URL 我的数据库包含(id,url)

我的转发器代码是:

<asp:Repeater runat="server" ID="repeater" >
    <ItemTemplate >
    <asp:ImageButton runat="server" Width="200px" Height="200px" ImageUrl='<%#Eval("url") %>' OnCommand="Image_Click" CommandName="ImageClick" CommandArgument='<%#Eval("url") %>' />
    </ItemTemplate>
    </asp:Repeater>

我的.cs代码是

 protected void Image_Click(object sender, CommandEventArgs e)
    {
        if (e.CommandName == "ImageClick")
        {
            string a=e.CommandArgument.tostring();
            responce.write(a);
        }
    }

3 个答案:

答案 0 :(得分:2)

你可以在ImageClick中做到

((ImageButton)sender).ImageUrl 

获取点击按钮的网址

答案 1 :(得分:1)

将发件人转换为ImageButton并读取其ImageUrl属性。

另外,您是否有理由使用命令而不是处理ImageButtons点击事件?

答案 2 :(得分:1)

Vladimir和Guigui的答案都是访问图像按钮URL的首选方式。

如果除了URL之外还需要ID值,则可以将多个值存储到以逗号分隔的CommandArgument中。

<asp:ImageButton runat="server" 
    ImageUrl='<%#Eval("url") %>' 
    OnCommand="Image_Command" 
    CommandName="ImageClick" 
    CommandArgument='<%# Eval("Id")%> + "," + Eval("url") %>' />

protected void Image_Command(object sender, CommandEventArgs e)
{
  if (e.CommandName == "ImageClick")
  {
    string[] commandArgs = e.CommandArgument.ToString()
       .Split(',');
    string id = commandArgs[0];
    string url = commandArgs[1];
  }
}