如何使用Repeater控件传递ID到OnClick事件?

3

这是我的屏幕截图:

在此输入图片描述

这是我在 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”的字段。我想以某种方式将该字段中的值传递给“Original”按钮,以便如果用户按下该按钮,则会将特定的graphicID传递到单击事件中。这有意义吗?
例如,第二个图像是Harlock船长。这个图像的graphicID是93。如果用户在Captain Harlock下按下“Original”按钮,我想将93传递给onClick事件。但我不知道如何做到这一点。如果有人能指点我正确的方向,我将非常感激!

这些图片显示在数据集控件中,该控件位于重复器下面? - Code Rider
不是一个数据集控件,而是Repeater控件中的ItemTemplate。该模板包含一个标签、图像和两个按钮。 - Kevin
感谢您的编辑,@john willemse!我的问题现在更具体了。 - Kevin
然后,您可以轻松使用按钮的“CommandArgument”属性,并且可以在重复器的项命令中访问它。 - Code Rider
@CodeRider 谢谢!我会阅读关于CommandArgument属性的内容,并看看如何使用它。非常感谢您的帮助! - Kevin
您好,我正在编辑我的回答以便提供更多帮助。不用客气。 - Code Rider
1个回答

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);
    }
}

太棒了!我非常感激你给我的额外帮助。非常感谢! - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接