ASP: кнопка Link не работает в производстве - PullRequest
0 голосов
/ 30 августа 2011

У меня есть кнопка asp: link следующим образом:

<asp:LinkButton ID="lb_new" runat="server" ForeColor="White">New Item</asp:LinkButton>

Protected Sub lb_new_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lb_new.Click
    ViewState("ItemID") = "0"
    Dim myURL As String
    myURL = String.Format("D002.aspx?e={0}&i={1}", ViewState("EventID"), ViewState("ItemID"))
    Response.Redirect(myURL)
End Sub

До недавнего времени он функционировал так, как и должен. Но по какой-то причине он перестал работать в производстве. Насколько я могу судить, он вообще не подключается к своему коду кода (я попытался изменить его, чтобы просто изменить текст в одном из текстовых полей на странице, и это тоже не получается). Все еще работает, если я запускаю сайт через визуальную студию. Но как только я публикуюсь на нашем производственном сервере, он больше не работает.

Я в тупике - и все еще возлюсь с этим.

Если кто-то испытал это, пожалуйста, поделитесь. Занимался этим уже пару часов, и у меня нет идей.

Спасибо!

UPDATE

  1. Обработчик события был предложен как пропавший парой людей. На самом деле это обрабатывается в коде с помощью предложения Handles (...Handles lb_new.Click).
  2. Вручную удалили элементы в рабочей папке, а затем повторно опубликовали. Радости нет.
  3. Проверено, файлы в рабочей папке новые.
  4. Я создал совершенно новую кнопку ссылки - она ​​также не может подключиться к своему коду кода
  5. Я добавил Onclick = к разметке. Это не должно быть необходимым, учитывая предложение Handles в коде. В любом случае, щелчок по-прежнему не срабатывает.

... по-прежнему подключается к нему

UPDATE2

Удалены обязательные поля валидаторов на странице, и это работает. Это не имеет смысла для меня, потому что у меня были другие элементы управления на странице, вызывающие обратную передачу, и они все еще работали все время. Кроме того, у меня были заполненные поля, которые были проверены, поэтому нет причин (я могу думать), что валидаторы предотвратили бы обратную передачу.

Теперь мне просто нужно выяснить, как выполнить проверку на странице без обязательных валидаторов полей.

... растерялся ...: -)

Ответы [ 4 ]

1 голос
/ 02 февраля 2012

У меня была такая же проблема, и эта тема указала мне на ответ (по крайней мере, для меня!).Просто установите для свойства ссылки CausesValidation значение false, и событие click будет запускаться, игнорируя состояние любых валидаторов на странице.Я не делаю ничего в событии click или postback, которое требует какой-либо проверки, поэтому я могу игнорировать это.Если то же самое относится и к вам, это может быть вашим решением.

1 голос
/ 30 августа 2011

Проверьте переменные __EVENTTARGET и __EVENTARGUMENT в записи; они должны соответствовать значениям кнопки, вызвавшей обратную передачу. Это как минимум первая подсказка ...

Вы обновили какую-то стороннюю DLL или обновили .NET 3.5 до .NET 4.0 или что-то вроде этого тоже?

НТН.

0 голосов
/ 04 сентября 2011

Проверочные элементы управления предотвращали обратную передачу - или, по крайней мере, удаление этих элементов управления, похоже, решило проблему. Это не имеет смысла для меня, потому что у меня были другие элементы управления на странице, вызывающие обратную передачу, и они все еще работали все время , Кроме того, у меня были заполненные поля, которые были проверены, поэтому нет причин (я могу думать), что валидаторы предотвратили бы обратную передачу. В любом случае, спасибо всем за все идеи.

0 голосов
/ 30 августа 2011

Я думаю, вам нужно определить событие "Click".

<asp:LinkButton ID="lb_new" runat="server" ForeColor="White" OnClick="lb_new_Click">New Item</asp:LinkButton>

(Edited) Для VB.NET: (Пример из MSDN: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.onclick(v=VS.90).aspx)

<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>LinkButton Example</title>
<script language="VB" runat="server">

      Sub LinkButton_Click(sender As Object, e As EventArgs) 
         Label1.Text = "You clicked the link button"
      End Sub

   </script>

</head>
<body>

   <form id="form1" runat="server">

      <h3>LinkButton Example</h3>

      <asp:LinkButton id="LinkButton1" 
           Text="Click Me" 
           Font-Names="Verdana" 
           Font-Size="14pt" 
           OnClick="LinkButton_Click" 
           runat="server"/>

      <br />

      <asp:Label id="Label1" runat="server" />

   </form>

</body>
</html>
...