ASP.NET GridView «Подтверждение на стороне клиента при удалении» перестал работать, т.е. - как получилось? - PullRequest
0 голосов
/ 04 декабря 2008

Несколько месяцев назад я запрограммировал ASP.NET GridView с настраиваемым «Удалить» LinkButton и клиентское подтверждение JavaScript в соответствии с этой статьей msdn:

http://msdn.microsoft.com/en-us/library/bb428868.aspx (опубликовано в апреле 2007 г.)

или, например, Javascript перед asp: нажатие кнопки Button

Код выглядит так:

<ItemTemplate>
  <asp:LinkButton ID="deleteLinkButton" runat="server" 
    Text="Delete"
    OnCommand="deleteLinkButtonButton_Command"   
    CommandName='<%# Eval("id") %>'
    OnClientClick='<%# Eval("id", "return confirm(\"Delete Id {0}?\")") %>'
  />
</ItemTemplate>

Удивительно, но «Отмена» больше не работает с моим ie (Версия: 6.0.2900.2180.xpsp_sp2_qfe.080814-1242) - он всегда удаляет строку. В Opera (версия 9.62) она все еще работает, как описано выше в статье msdn. Более удивительно, на компьютере коллеги с той же версией, то есть, она все еще работает («Отмена» не удалит строку).

Сгенерированный код выглядит как

<a onclick="return confirm(...);" href="javascript:__doPostBack('...')">

Поскольку подтверждение (...) возвращает false при "Отмена", я ожидаю, что событие __doPostBack в href не будет запущено. Существуют ли какие-то странные настройки, которые я случайно мог изменить? Что еще может быть причиной этого странного поведения? Или это проблема "пожалуйста, переустановите WinXP"?

Ответы [ 2 ]

1 голос
/ 04 декабря 2008

Попробуйте это:

<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
    CommandName="Delete" Text="Delete"
    OnClientClick="return confirm('Delete Id : '<%# (string)Eval('id')%>')" >

</asp:LinkButton>
0 голосов
/ 05 декабря 2008

Наконец-то нашли решение на http://forums.asp.net/t/1161858.aspx

В этой теме корень проблемы в конечном итоге был назначен на "Причиной был McAfee Phising Filter".

Мне пришлось заменить очевидную линию

OnClientClick='<%# Eval("id", "return confirm(\"Delete Id {0}?\")") %>'

с помощью этой загадочной строки (мне также пришлось исследовать, как избежать фигурных скобок), так как "event.returnValue = false; имеет значение":

OnClientClick='<%# Eval("zahlungid", "if(confirm(\"Delete Id {0}?\")==false){{event.returnValue=false;return false;}}else{{return true;}}") %>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...