Удалить пользовательский элемент управления в репитере
У меня есть контрольное изображение в пользовательском элементе управления. И я использую повторитель для создания списка нескольких изображений.
У меня есть кнопка снаружи от пользовательского элемента управления для удаления изображения (по изображениям).
Я хочу знать, как я могу сделать ссылки на конкретную строку, когда я нажимаю на кнопку, чтобы удалить изображение.
Это повторение:
<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
вы можете использовать любой первичный ключ (уникальный идентификатор) из источника данных, который вы связываете с ретранслятором, откуда вы сможете получить запись непосредственно из объекта списка (источник данных).