2012-02-20 5 views
1

Код сообщения в C#, который я использовал, - это следующий код, который условно основан на моем требовании. Он работает отлично во всех случаях, за исключением случаев, когда используется панель обновления Ajax. Например я хотел бы предложить пользователь, если нет флажка не выбран в GridView с соответствующим сообщением, код выполняется, но не окно сообщения не отображаютсяMessageBox Inside Updatepanel не отображается

public static void MessageBox(string message, Page page) 
    {  
     if (!string.IsNullOrEmpty(message)) 
     { 
      Label lbl = new Label(); 
      lbl.Text = "<script type=\"text/javascript\" language=\"javascript\">" + "alert('" + message + "'); " + "</script>"; 
      page.Controls.Add(lbl); 
     } 
    } 
+0

@ Im Hari: почему бы вам не попробовать асинхронный автоматический пост и проверить его работу или нет? – Rocky

ответ

1

Вы могли бы сделать, как предложено here

1

Похоже, вы добавляете наклейте непосредственно на страницу. Это будет отлично работать для полноценных сценариев после обратной связи (и вы упомянули об этом), но если вы не добавите его где-то непосредственно внутри UpdatePanel, он не будет записан на страницу на частичной обратной передаче.

2

Использование ScriptManager.RegisterClientScriptBlock или ClientScriptManager .RegisterClientScriptBlock метод, чтобы добавить свой скрипт, используя панель обновления.

Примером этого можно here

0

Насколько я понимаю, постбэк Ajax внутри UpdatePanel только манипулирует HTML внутри UpdatePanel, используя некоторые ASP.Net Ajax JavaScript магии. Если вы добавите код JavaScript внутри обновленного HTML, он не будет выполнен.

Почему вы не используете CustomValidator для проверки своих флажков?

1

я также искал одного и того же рода решения, так как я был один и тот же problem.the ниже метод работал для меня, как предложил @Sids ..

ScriptManager.RegisterClientScriptBlock(myControl, myControl.GetType(), "msg", "alert('Success')", true);