2012-02-10 2 views
5

У меня есть функция, которая отвечает за заполнение отчета SSRS. Пользователь нажимает кнопку, и я выхожу и проверяю, есть ли данные. Если нет данных, я предоставляю сообщение NO DATA. Если есть данные, я вызываю отчет SSRS, который я хотел бы открыть в новом окне. Я думал, что использование функции JavaScript будет лучшим способом для этого. Как это делается или что вы порекомендуете? Заранее спасибо!ASP.Net VB вызывает функцию JavaScript из кода

<script type="text/javascript"> 
     function openWindow(url) { 
      document.forms[0].target = "_blank"; 
     } 
    </script> 

ответ

5

Рассмотрите возможность использования метода ClientScriptManager.RegisterClientScriptBlock. Это статический метод и должен быть доступен на вашей странице.

Пример использования заключается в следующем:

Page.ClientScript.RegisterStartupScript(Me.GetType(), "window-script", "openWindow('someUrl')", True) 

Конечно, вы можете поставить любой URL, который вы подготовили в коде позади ...

Надеется, что это помогает.

0

Если вы пытаетесь выполнить JavaScript на странице в зависимости от некоторых результатов на стороне сервера логики, один способ, которым Вы могли бы добиться этого с помощью осины буквенных управлений (или других типов элементов управления ASP)

Примера:

<asp:Literal ID="literalJavascript" runat="server"> 
    function openWindow() { ... } 

    openWindow(); 
</asp:Literal> 

Затем просто покажите или скройте этот литерал в коде сервера, основываясь на вашей другой логике.

9

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

System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "openWindow(url);", True) 
2

Что-то иметь в виду здесь: в то время как код VB работает, страница в вашем браузере не существует.

Помните, что веб-работает по протоколу HTTP, а протокол HTTP сводится к запросов и ответов. Всегда сначала запрос, затем ответ. Часто ответ представляет собой html, и именно здесь приходит ваш код vb. Единственная цель всего разметки кода и aspx заключается в том, что ваш веб-сервер может отправить html обратно в браузер. Между браузером и вашим сервером нет активного соединения. Пока ваш код vb запущен, веб-страница в вашем браузере действительно не существует (ваш код занят ее созданием). Пока ваш javascript запущен, а ресурсы vb, используемые для его создания на сервере, уже давно переработаны.

Смежные вопросы