2012-02-16 2 views
0

У меня есть ретранслятор ASP.NET, чей ItemTemplate является WebUsercontrol с именем ProviderControl.Реакция на команды Button внутри веб-пользователя в ретрансляторе ASP.NET

<asp:Repeater ID="rep" runat="server" OnItemDataBound="rep_ItemDataBound"> 
    <ItemTemplate> 
     <custom:ProviderControl ID="row" runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 

Я наполнение пользовательского элемента управления данными в ItemDataBound случае.

Внутри элемента управления провайдера У меня есть две кнопки, на которые я хочу реагировать на содержащую страницу. Я знаю, что есть команды и аргументы команды, но как мне это сделать?

Или есть более простой способ, чем использование команд?

ответ

1

Вы должны обрабатывать ItemCommand событие "Repeater".

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) 
    { 
     Button btn = e.CommandSource as Button; 
     Response.Write(btn.ID); 
    } 
+0

Это будет работать, если кнопка находится непосредственно под ретранслятором. Однако в моем случае кнопка снова находится внутри другого элемента управления. Будет ли e.CommandSource найти правильное управление Button? – John

+0

@ Джон - Да! Это будет. – adatapost

+0

Спасибо, но событие не обрабатывается на уровне страницы. Я только добавил атрибут COmmandName к кнопке в моем пользовательском элементе управления. Это все, что мне нужно? Я настроил повторитель на странице, чтобы запустить событие ItemCommand. Что-нибудь еще? – John

Смежные вопросы