Удалить пользовательский элемент управления в репитере

У меня есть контрольное изображение в пользовательском элементе управления. И я использую повторитель для создания списка нескольких изображений.

У меня есть кнопка снаружи от пользовательского элемента управления для удаления изображения (по изображениям).

Я хочу знать, как я могу сделать ссылки на конкретную строку, когда я нажимаю на кнопку, чтобы удалить изображение.

Это повторение:

<asp:Repeater ID="ImageRepeater" runat="server" 
    onitemcommand="ImageRepeater_ItemCommand">
    <ItemTemplate>
        <div>
            <uc1:IVT_DisplayImage ID="IVT_DisplayImage1" runat="server" ImageURL="<%# Container.DataItem %>" />
            <asp:Button ID="RemoveDiplayImage" Text="Remove" runat="server" 
            CommandName="delete" 
            />
        </div>
    </ItemTemplate>
</asp:Repeater>

Это событие ItemCommand:

protected void ImageRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "delete")
    {
        //????
    }
}

Я хочу знать, как определить по коду, какую строку (пользовательский контроль) я выбираю.

1 ответ

Решение

Вам нужно добавить CommandArgument на вашу кнопку, как CommandArgument="<%# Container.ItemIndex %>",

Таким образом, в коде; e.CommandArgument дает вам номер элемента, с помощью которого вы можете получить элемент, который вы хотите.

Примечание: на самом деле вместо указания ItemIndex как CommandArgumentвы можете использовать любой первичный ключ (уникальный идентификатор) из источника данных, который вы связываете с ретранслятором, откуда вы сможете получить запись непосредственно из объекта списка (источник данных).

Другие вопросы по тегам