Регистрация  |  Вход

JS тайаут на VF

Есть у меня такая кнопка:

<apex:commandButton action="{!SaveCh}" value="Save" onclick="edit()"/>

Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.
Затык такой: метод SaveCh не успевает закончить работу, а edit() ее уже обновил. В итоге Юзер не видит изменённых данных.
Пытался задать js таймаут перед рефрешем страницы, но на SF почему-то эта функция не работает.
Как бы это решить?

Есть у меня такая кнопка:
[code]<apex:commandButton action="{!SaveCh}" value="Save" onclick="edit()"/>[/code]
Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.
Затык такой: метод SaveCh не успевает закончить работу, а edit() ее уже обновил. В итоге Юзер не видит изменённых данных.
Пытался задать js таймаут перед рефрешем страницы, но на SF почему-то эта функция не работает.  
Как бы это решить? 

DevNull
Есть у меня такая кнопка:
<apex:commandButton action="{!SaveCh}" value="Save" onclick="edit()"/>

Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.
Затык такой: метод SaveCh не успевает закончить работу, а edit() ее уже обновил. В итоге Юзер не видит изменённых данных.
Пытался задать js таймаут перед рефрешем страницы, но на SF почему-то эта функция не работает.
Как бы это решить?

Пробую oncomplete вместо Onclick

[quote="DevNull"]Есть у меня такая кнопка:
[code]<apex:commandButton action="{!SaveCh}" value="Save" onclick="edit()"/>[/code]
Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.
Затык такой: метод SaveCh не успевает закончить работу, а edit() ее уже обновил. В итоге Юзер не видит изменённых данных.
Пытался задать js таймаут перед рефрешем страницы, но на SF почему-то эта функция не работает.  
Как бы это решить?[/quote]
Пробую oncomplete вместо Onclick

Сделал немного по другому:

<apex:commandButton action="{!SaveCh}"  value="Save" rerender="jk" status="status56"/>
<apex:actionStatus id="status56" onstop="window.opener.parent.location.href='/{!taskId}'; window.close();" />

Работает шикарно!

Сделал немного по другому:
[code]
<apex:commandButton action="{!SaveCh}"  value="Save" rerender="jk" status="status56"/>
<apex:actionStatus id="status56"  onstop="window.opener.parent.location.href='/{!taskId}'; window.close();" />
[/code]
Работает шикарно!

Gres
Пробуй oncomplete вместо Onclick

вот это работает шикарно
<apex:commandButton action="{!save}" value="Save" id="theButton" oncomplete="edit();"/>

DevNull
Сделал немного по другому:
<apex:commandButton action="{!SaveCh}"  value="Save" rerender="jk" status="status56"/>
<apex:actionStatus id="status56" onstop="window.opener.parent.location.href='/{!taskId}'; window.close();" />

Работает шикарно!

а это немного не так шикарно как хотелось бы)

[quote="Gres"]Пробуй oncomplete вместо Onclick[/quote]
вот это работает шикарно
[code]<apex:commandButton action="{!save}" value="Save" id="theButton" oncomplete="edit();"/>[/code]

[quote="DevNull"]Сделал немного по другому:
[code]
<apex:commandButton action="{!SaveCh}"  value="Save" rerender="jk" status="status56"/>
<apex:actionStatus id="status56"  onstop="window.opener.parent.location.href='/{!taskId}'; window.close();" />
[/code]
Работает шикарно![/quote]
а это немного не так шикарно как хотелось бы)
[img]http://www.liveinternet.ru/images/attach/1/3148/3148787_Indus.jpg[/img]

Maxim Elets
а это немного не так шикарно как хотелось бы)

Обоснуй? Если это индусский код, то я хочу знать почему? А если я лоаудер хочу повесить на нажатие этой кнопки?

[quote="Maxim Elets"]а это немного не так шикарно как хотелось бы) [/quote]
Обоснуй? Если это индусский код, то я хочу знать почему? А если я лоаудер хочу повесить на нажатие этой кнопки? 

DevNull
Maxim Elets
а это немного не так шикарно как хотелось бы)

Обоснуй? Если это индусский код, то я хочу знать почему? А если я лоаудер хочу повесить на нажатие этой кнопки?

ну изначально о статусе никто не говорил, но всеже не зря придумали oncomplete

[quote="DevNull"][quote="Maxim Elets"]а это немного не так шикарно как хотелось бы) [/quote]
Обоснуй? Если это индусский код, то я хочу знать почему? А если я лоаудер хочу повесить на нажатие этой кнопки?[/quote]
ну изначально о статусе никто не говорил, но всеже не зря придумали oncomplete

DevNull
Есть у меня такая кнопка:
<apex:commandButton action="{!SaveCh}" value="Save" onclick="edit()"/>

Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.
Затык такой: метод SaveCh не успевает закончить работу, а edit() ее уже обновил. В итоге Юзер не видит изменённых данных.
Пытался задать js таймаут перед рефрешем страницы, но на SF почему-то эта функция не работает.
Как бы это решить?

Cтандартная проблема стандартное решение вообще фантазировать не надо )) Называется ActionFunction ВСЕ.

[quote="DevNull"]Есть у меня такая кнопка:
[code]<apex:commandButton action="{!SaveCh}" value="Save" onclick="edit()"/>[/code]
Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.
Затык такой: метод SaveCh не успевает закончить работу, а edit() ее уже обновил. В итоге Юзер не видит изменённых данных.
Пытался задать js таймаут перед рефрешем страницы, но на SF почему-то эта функция не работает.  
Как бы это решить?[/quote]
Cтандартная проблема стандартное решение вообще фантазировать не надо )) Называется ActionFunction ВСЕ.

DevNull
Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно.

Типичная задача для oncomplete - у меня наверное в 90% случаев он используется при ajax.

[quote="DevNull"]Метод SaveCh делает крутую работу, а edit() обновляет страницу и закрывает попап окно. [/quote]
Типичная задача для oncomplete - у меня наверное в 90% случаев он используется при ajax.