2011-02-01 4 views
0

Это странная проблема. У меня есть представление List с двумя кнопками Link. «Изменить» и «Удалить» Iam, способный присоединить обработчик события для первой кнопки ссылки (Обновление). Код в обработчике событий выполнен нормально. Но если я попытаюсь подключить обработчик события для второй кнопки ссылки (Удалить), я получаю сообщение об ошибке.Невозможно создать обработчик событий для LinkButton внутри ListView ItemTemplate

My Item Template Похоже на это.

<ItemTemplate> 
        <tr> 
         <td> 
          <asp:Label ID="MessageLabel" runat="server" Text='<%# Eval("Item") %>' /> 
         </td> 
         <td> 
          <asp:Label ID="URLLabel" runat="server" Text='<%# Eval("URL") %>' /> 
         </td> 
         <td> 
          <asp:LinkButton ID="EditLinkButton" runat="server" OnClick="EditLinkButtonClicked" 
           CommandArgument='<%# Eval("ItemID") %>'> Edit</asp:LinkButton> 
         </td> 
         <td> 
          <asp:LinkButton ID="DeleteLinkButton" runat="server" OnClick="DeleteLinkButtonClicked" 
           CommandArgument='<%# Eval("ItemID") %>'>Delete</asp:LinkButton> 
         </td> 
        </tr> 
       </ItemTemplate> 

обработчик событий объявлено в файле отделенного кода являются

общественного недействительным EditLinkButtonClicked (объект отправитель, EventArgs е) { ----- }

общественного недействительного DeleteLinkButtonClicked (объект отправитель , EventArgs е) { ----- } [Точно так же]

Первый товар работает абсолютно нормально. Но если я присоединяю второй обработчик, я получаю следующую ошибку: enter image description here

Я пропустил какую-то вещь? Примечание - Там нет ошибки, если я пытаюсь прикрепить 1-обработчик событий для кнопки второй линии [т.е. EditLinkButtonClicked к DeleteLinkButtonClicked] Проблема возникает только тогда, когда я пытаюсь прикрепить DeleteLinkButtonClicked к DeleteLinkButton

Любая помощь.? Спасибо заранее

ответ

1

Попробуйте отключить EnableEventValidation для директивы страницу и проверить его.

<%@ Page EnableEventValidation="false" %> 

Если это поможет, то вы должны знать, что:

Эта функция снижает риск несанкционированных или злоумышленных обратной передачи запросов и обратных вызовов. Настоятельно рекомендовал вам не отключать проверку событий .

в отношении к http://msdn.microsoft.com/en-us/library/system.web.ui.page.enableeventvalidation.aspx и попытаться избежать этого в том, что был предложен here.

+0

Спасибо Apos..Он работал .. – Ananth

1

Было бы три вещи:

  • Вам нужно очистить, восстановить решение и сбросить IIS или близкий сервер разработки ASP.NET (возможно, некоторые кэш мешает вам выполнить наиболее недавняя версия класса кода).

  • Typo. Дважды проверьте, что ...!

  • У обработчика событий неправильная подпись.

В любом случае, почему вы не используете событие «Command»?

Вы можете сделать OnCommand = "Item_Command", а обработчик событий будет иметь CommandEventArgs, который предоставляет вам CommandName и CommandArgument, поэтому вы можете переключать имя команды и вызывать логику для редактирования или удаления соответственно.

Подробнее здесь:

+0

Спасибо Матиасу .. Я проверил все ваши предложения. Но не удача .. Но альтернативный подход, о котором вы говорили, определенно поможет мне продвинуться вперед. – Ananth

+0

Да, это подход, который я использую везде. Команды для меня лучше, чем отдельные обработчики. Он идеально подходит для MVC, MVP или чего-либо, переводящего пользовательские события в действия. –

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