2013-04-18 3 views
0

У меня есть ретранслятор, и у него есть кнопка Asp. Я хочу получить элемент ретранслятора, который содержит нажатую кнопку.Как найти конкретный элемент ретранслятора

Вот часть моего ретранслятора:

 ... 
     <td> 
      <asp:Button runat="server" ID="btnSaveStock" OnClick="btnSaveStock_OnClick" Text="Save" /> 
     </td> 
    </tr> 
    </ItemTemplate> 

Я хочу, чтобы открыть элемент повторителя здесь:

protected void btnSaveStock_OnClick(object sender, EventArgs e) 
    { 
     try 
     { 
      Button btnSaveStock = (Button)sender; 

      Repeater rptProductChance = (Repeater)btnSaveStock.Parent; 

     } 
     catch (Exception) 
     { 

      throw; 
     } 
    } 

Что я должен делать ожидать цикл, как проверить все элементы повторителя?

+0

Большинство, которые вы можете получить, это родительский элемент ретранслятора, а не сам ретранслятор. Вам нужно будет использовать идентификатор ретранслятора в 'btnSaveStock_OnClick' и восстановить его источник данных. –

ответ

1

Это то, что вы можете сделать. Вы можете получить доступ к RepeaterItem, нажав кнопки NamingContainer.

protected void btnSaveStock_OnClick(object sender, EventArgs e) 
{ 
    try 
    { 
     Button btnSaveStock = (Button)sender; 
     RepeaterItem item = (RepeaterItem)btnSaveStock.NamingContainer; 
     //.... 

    } 
    catch (Exception) 
    { 
     throw; 
    } 
} 
0

Поскольку есть много кнопок (не только один), если вы хотите иметь дело с обработкой кнопки click ~ в контексте текущей «строки» повторителя ~, вы, вероятно, захотите подключиться к ретранслятору, а не кнопку «определение шаблона».

http://www.developer.com/net/asp/article.php/3609466/ASPNET-Tip-Responding-to-the-Repeater-Controls-ItemCommand-Event.htm

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