LinkButton не работает на производственном сервере - PullRequest
0 голосов
/ 19 сентября 2008

Это хороший кандидат на «Программу сертификации работ на моей машине» .

У меня есть следующий код для LinkButton ...

<cc1:PopupDialog ID="pdFamilyPrompt" runat="server" CloseLink="false" Display="true">
  <p>Do you wish to upgrade?</p>
  <asp:HyperLink ID="hlYes" runat="server" Text="Yes" CssClass="button"></asp:HyperLink>
  <asp:LinkButton ID="lnkbtnNo" runat="server" Text="No" CssClass="button"></asp:LinkButton>
</cc1:PopupDialog>

Он использует пользовательский элемент управления, который просто добавляет код до и после содержимого, чтобы отформатировать его как всплывающее диалоговое окно. Кнопка Да является гиперссылкой, потому что она выполняет JavaScript, чтобы скрыть диалоговое окно и показать другой. Кнопка Нет является LinkButton, поскольку для обработки этого значения требуется PostBack.

У меня нет события onClick, зарегистрированного в LinkButton, потому что я просто проверяю, является ли IsPostBack истинным. Когда выполняется локально, PostBack работает отлично, и все идет хорошо. При публикации на нашем сервере разработки кнопка Нет ничего не делает при нажатии. Я использую один и тот же браузер при локальном тестировании и на сервере разработки.

Моя первоначальная мысль: возможно, Validator не позволяет PostBack сработать. Я использую несколько валидаторов в другом разделе страницы, но все они назначены определенной группе валидации, которой не назначен LinkButton No . Однако проблема в том, почему он будет работать локально, а не на сервере разработки.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 29 апреля 2010

У меня была похожая проблема. Я создал форму с updatePanel, в форме были некоторые кнопки ссылок, которые открывали бы модалпопап Ajax extender. Они работали нормально, пока я не добавил аутентификацию на сайт. После этого они вообще ничего не делали.

Читая ваше решение, я обнаружил, что некоторые из кнопок ссылок БЫЛИ работали, они были теми, у которых была установлена ​​эксплозивность CausesValidation (я вставил ее только для тех, где я сделал бы это истинным). Добавление CausesValidation = "false" ко всем остальным кнопкам ссылок позволило им работать правильно после моей аутентификации.

Спасибо за ваши комментарии всем, это спасло мой день!

1 голос
/ 19 сентября 2008

Проверьте html, который генерируется при производстве, и убедитесь, что он имеет __doPostback () и что нет глобальных методов, отслеживающих щелчок и отмену события. Кроме этого, если вы думаете, что это может быть связано с проверкой, вы можете попробовать добавить CausesValidation или что-то еще в false и посмотреть, поможет ли это. В противном случае ошибку «работает на моей машине» сложно отладить, не присутствуя и не зная конфигурации DEV против PROD.

0 голосов
/ 19 сентября 2008

Мое понимание ValidationGroup заключается в том, что кнопка без указания группы вызовет все валидаторы на странице. Вы пытались дать LinkButton другую группу проверки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...