2012-06-19 3 views
0

UPDATEОтветить на OnClick внутри UserControl внутри Gridview

я должен научиться более внимательно читать сообщения об ошибках. Я забыл изменить некоторые идентификаторы в моей спецификации столбца для gridview, которые были одинаковыми, что вызвало ошибку «Несколько одинаковых идентификаторов».

Благодарим вас за то, что прочитал мой вопрос и однажды попытался помочь мне. Бесплатные пощечины к моему лицу


Я пытаюсь ухватить событие OnClick или OnCommand из ImageButton, которые находятся внутри UserControl, которые находятся внутри GridView. Я пытался создавать ImageButton так бросает команду:

<asp:ImageButton runat="server" ID="exchanceButton" 
     Visible="False" ImageUrl="../Images/Icons/Exchange.png" 
     CommandName="exchanceCommand" CommandArgument="1"> 

И улов его внутри GridView OnRowCommand, но я получаю следующее сообщение об ошибке: Несколько элементов управления с тем же идентификатором «userControlPlan» были найдены. FindControl требует, чтобы элементы управления имели уникальные идентификаторы. Я пробовал отлаживать, но он вообще не доходит до моего OnRowCommand.

Я попробовал следующее руководство, но без успеха: http://msdn.microsoft.com/en-us/library/bb907626.aspx

Я также пытался проводить мероприятие, создав свое собственное событие внутри UserControl, а затем назначить слушатель каждое UserControl:

public delegate void OnExchanceClickDelegate(int id); 

public event OnExchanceClickDelegate OnExchangeClick; 

protected void exchanceButton_Click(object sender, ImageClickEventArgs e) 
{ 
    if (OnExchangeClick != null) 
    OnExchangeClick(1); 
} 

, но я получаю ту же ошибку в отношении нескольких элементов управления.

Есть ли у вас какие-либо предложения о том, как я могу правильно воссоздать событие из ImageButton внутри UserControl в Gridview или что-то еще?

ответ

0

Я исправил проблему. У меня были дубликаты ID в моем UserControl. Я обновил свой первоначальный вопрос.

1

Не уверен, что это помогает. но именно так я сделал это для своего сайта:

<asp:ImageButton ToolTip="Download File" ID="lbDownload" ImageUrl="/images/btn_download.gif" 
CommandArgument='<%# Eval("DocumentName") %>' runat="server" CommandName="DownloadDoc"/> 

важной частью является имя команды.

, конечно, с параметром OnItemCommand в теге gridview. А затем на стороне сервера:

protected void itemCommand(object sender, GridCommandEventArgs e) 
{ 
    if (e.CommandName == "DownloadDoc") 
    // Do something... 
} 
Смежные вопросы