使用Repeater控件将ID传递给OnClick事件?

时间:2013-04-12 14:28:13

标签: c# asp.net webforms

这是我的屏幕:

enter image description here

以下是Repeater中ItemTemplate的代码:

<ItemTemplate>
    <div style="float: left; overflow: hidden; display: inline-block; border-style: solid; margin: 5px; background-color: Silver">
        <div style="text-align:center">
            <asp:Label ID="lblImage" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "image") %>'></asp:Label>
        </div>
        <asp:Image runat="server" ID="image1" Width="250px" Height="250px" ImageUrl='<%# DataBinder.Eval(Container.DataItem, "url") %>' />
        <div style="text-align: center;">
            <asp:Button runat="server" ID="btnNew" Text="New" />
            <asp:Button runat="server" ID="btnOriginal" Text="Original" />
        </div>
    </div>

Repeater使用程序中的数据集来填充ItemTemplate的标签和图像控件。我的数据集中有另一个名为graphicID的字段。我想以某种方式将该字段中的值传递给“原始”按钮,这样,如果用户按下该按钮,则会将特定的graphicID传递给click事件。这有意义吗?

例如,第二张图片是哈洛克船长。此图片的graphicID93。如果用户按下Harlock上尉的原始按钮,我想将93传递给onClick事件。不过,我不知道怎么做。如果有人能指出我正确的方向,我会非常感激!

1 个答案:

答案 0 :(得分:4)

<div style="text-align: center;">
        <asp:Button runat="server" ID="btnNew" Text="New" />
        <asp:Button runat="server" CommandName="cmd_original" CommandArgument="name of field which you want to access" ID="btnOriginal" Text="Original" />
    </div>

修改

在转发器控制中

您必须添加如下事件:

 onitemcommand="Repeater1_ItemCommand"

代码

 protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "cmd_original")
    {
        Int32 id = Convert.ToInt32(e.CommandArgument);
    }
}