0

我想在中继器中单击数据库中的图像时获取图像 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);
        }
    }
4

3 回答 3

2

你可以在 ImageClick 中做

((ImageButton)sender).ImageUrl 

获取点击按钮的 url

于 2013-09-04T17:21:40.287 回答
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];
  }
}
于 2013-09-04T18:20:31.517 回答
1

将 sender 转换为 ImageButton 并读取其 ImageUrl 属性。

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

于 2013-09-04T17:22:06.490 回答