2012-03-28 6 views
3

У меня есть контроль, если обзор уже существует, если он существует, я хочу предупредить посетителя, что если человек нажмет кнопку «ОК»/«да» в предупреждении, перепись будет перезаписана, если человек не нажал/отменил обзор, не будет обновлено. Но это не сработает, при отладке линия оповещения просто проходит мимо и обновляется без предупреждения.Почему предупреждение не выполняется?

if (ReviewExist(StoreID, UserID) != 0) 
{ 
    ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "confirm('Are you sure?');", true); 
    UpdateStoreReview(Description); 
    Response.Redirect("Default"); 
} 
else  
{ 
    AddStoreReview(Description); 
} 
+2

Пример из [документация] (http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx) упаковывает JS в ' 'tags. Вы пробовали это? –

+1

Даже если все работает так, как вы ожидали (то есть, что клиентский скрипт выполнялся до перехода к следующей строке), обратите внимание, что вы не можете (и не можете) проверить результат своего вызова 'confirm()' ... –

ответ

8

Это потому, что ваш Response.Redirect перенаправляет управление на другую страницу, которая будет игнорировать вашу RegisterScript.

Что вам нужно сделать, это, если вы пытаетесь добиться этого в кнопку мыши (кнопка обновления), а затем в Page_Load попробовать

if(!IsPostBack)  
{ 
btnUpdate.Attributes.Add("OnClick","confirm('Are you sure?');"); 
} 

Тогда приведенный выше код может быть изменен на

if (ReviewExist(StoreID, UserID) != 0) 
{ 
    UpdateStoreReview(Description); 
    Response.Redirect("Default"); 
} 
else  
{ 
    AddStoreReview(Description); 
} 

Note Я думаю, вам необходимо перенаправить к Default.aspx; но вы отсутствуете .aspx в response.redirect.

+0

Okey, но я только хочу, чтобы пользователь увидел предупреждение, если пользователь уже опубликовал обзор. Кажется, каждый раз, когда нажимается кнопка, появляется предупреждение или я ошибаюсь? – user1007103

+0

Что вы можете добавить оператор If перед добавлением btnUpdate.Attributes.Add, который будет проверять, добавил ли пользователь отзыв – PraveenVenu

+0

Thats true! Спасибо! – user1007103

2

Вам нужны теги сценария в вашем скрипте.

ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "<script type='text/javascript'>confirm('Are you sure?');</script>", true); 
1

Если вы с помощью ASP.net

<asp:Button ID="_btnSalvar" runat="server" Confirm="False" ConfirmType="None" Text="Are you sure?" Width="131px" OnClick="_btnSalvar_Click" /> 
Смежные вопросы