Ajax ConfimButtonExtender запускается перед кодом JavaScript OnClientClick - PullRequest
1 голос
/ 01 августа 2009

Я использую aspnet 3.5, 2008, ajax 2.0, старый добрый javascript (не использующий никакой фреймворк javascript).

В asp: listview у меня есть кнопка (удалить) с OnClientClick = "turnrowpink (this);"

У меня также есть ajax 2.0 для подтверждения кнопки для этой кнопки (вы уверены, что хотите удалить эту запись?)

Функция Turnrowpink, используемая до запуска, вы уверены? сообщение.

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

С тех пор я добавил много совершенно не связанных функций javascript, и теперь приведенный выше код запускается в обратном порядке:

Вы уверены? подтверждение происходит 1-го числа, затем в порядке , вызывается поворотная точка. В какой-то степени глупо запускать поворотную точку в этот момент. Чтобы добавить оскорбление к травме, я получаю ошибку javascript на поворотном повороте, так как parm (this) , кажется, был установлен на что-то другое в этой точке

Итак, как мне сначала запустить стрелку?

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

Вот код:

это в шаблоне элемента списка:

<td>
   <asp:ImageButton ID="ImageButtonDel" 
   runat="server" OnClientClick="TurnRowPink(this);"
   ImageUrl="~/delete.GIF" CommandName="DeleteRecord" 
   CommandArgument='<%# Eval("tt_Pkey") %>' />
</td>

и это ConfirmButtonExtender, также в шаблоне элемента списка:

<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" 
 ConfirmText="Are you sure you want to delete this record?"  
   runat="server" TargetControlID="ImageButtonDel">
</cc1:ConfirmButtonExtender>

Ответы [ 2 ]

1 голос
/ 29 октября 2009

У меня была эта проблема, проблема в том, что расширитель переписывает вашу функцию onclick вместо того, чтобы связывать ее (jQuery, мы любим вас) Я взломал это так:

<asp:ImageButton ID="ImageButtonDel" 
   runat="server" onmousedown="TurnRowPink(this);"
   ImageUrl="~/delete.GIF" CommandName="DeleteRecord" 
   CommandArgument='<%# Eval("tt_Pkey") %>' />
1 голос
/ 01 августа 2009

На вашем месте я бы не использовал ConfirmButtonExtender. То, как вы используете все, что он делает, - это вывод сообщения о подтверждении, которое гораздо проще сделать вручную.

Измените свойство OnClientClick на следующее:

OnClientClick="return TurnRowPink(this);"

Тогда ваша функция TurnRowPink будет выглядеть примерно так:

function TurnRowPink(obj){
  /*
  * Turn row pink logic here
  */

  if(Confirm("Are you sure you want to delete this record?")){
    // Any logic you may need for if they click "OK"
    return true;
  }
  else{
    // Any logic you may need if they click "Cancel", such as change back from pink to prior color
    return false;
  }
}

Это непроверенный код, но я думаю, что он будет работать, хотя у меня не было большого опыта работы с ImageButtons

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